Re: Program hangs when trying to call SetBitmap on wx.StaticBitmap after Mainloop has started

Benjamin Misell <[email protected]>
Newsgroups gmane.comp.python.wxpython.devel
Message-ID <[email protected]>
I have been unable to replicate the error outside of the main program and i 
don't know why. Im new to this but here is the full program anyway:

main.py

import wx
import gui
import pymysql
import pdb
import base64
import io
import threading
import socket
import requests


class PaymentFrame(gui.PaymentFrame):
    def __init__(self, parent):
        gui.PaymentFrame.__init__(self, parent)
        self.parent = parent

    def CardDone(self, event):
        self.parent.CustomerFrame.paid.SetLabel(str(round(self.parent.price_total, 2)))
        self.parent.CustomerFrame.change.SetLabel("0.00")
        self.CardStep1.Hide()
        self.CardPayment.Hide()
        self.FinalStep.Show()
        self.Layout()
        ids = []
        for item in self.parent.basket:
            if self.parent.items_list[item]['sku'] != '':
                self.parent.cursor.execute("UPDATE stock SET quantity = quantity - 1 WHERE sku = %s",(self.parent.items_list[item]['sku'],))
            ids.append(str(self.parent.items_list[item]['id']))
        self.parent.cursor.execute("INSERT INTO purchases (`amount`, `method`, `items`) VALUES (%s, 'card', %s)", (self.parent.price_total, ','.join(ids)))
        self.parent.basket = []
        self.parent.discount = 0.0
        self.parent.update_basket()
        self.parent.conn.commit()

    def CashStep1Done(self, event):
        paid = float(self.ammountPaidCash.GetValue())
        self.parent.CustomerFrame.paid.SetLabel(str(round(paid, 2)))
        change = round(paid - self.parent.price_total, 2)
        self.parent.CustomerFrame.change.SetLabel(str(change))
        self.CashStep1.Hide()
        self.CashStep2.Show()
        self.cashChange.SetLabel(str(change))
        self.Layout()

    def CashStep2Done(self, event):
        self.CashStep2.Hide()
        self.CashPyment.Hide()
        self.FinalStep.Show()
        self.Layout()
        ids = []
        for item in self.parent.basket:
            if self.parent.items_list[item]['sku'] != '':
                self.parent.cursor.execute("UPDATE stock SET quantity = quantity - 1 WHERE sku = %s", (self.parent.items_list[item]['sku'],))
            ids.append(str(self.parent.items_list[item]['id']))
        self.parent.cursor.execute("INSERT INTO purchases (`amount`, `method`, `items`) VALUES (%s, 'cash', %s)", (self.parent.price_total, ','.join(ids)))
        self.parent.basket = []
        self.parent.discount = 0.0
        self.parent.update_basket()
        self.parent.conn.commit()

    def BitcoinStep1Done(self, event):
        self.BitcoinStep1.Hide()
        self.BitcoinStep2.Show()
        self.Layout()
        threading.Thread(target=self.check_bitcoin_payment).start()

    def check_bitcoin_payment(self):
        payment = False
        while not payment:
            try:
                data = requests.get('http://81.134.30.44/btc/checkAddress.py/%s' % (self.parent.BTCAddr,)).json()
                if data["error"] == '':
                    payment = data['paid']
            except ValueError:
                payment = False
        self.BitcoinStep2.Hide()
        self.BitcoinPayment.Hide()
        self.FinalStep.Show()
        self.parent.CustomerFrame.qrCode.Hide()
        self.parent.CustomerFrame.items.Show()
        self.parent.CustomerFrame.Layout()
        self.Layout()
        ids = []
        for item in self.parent.basket:
            if self.parent.items_list[item]['sku'] != '':
                self.parent.cursor.execute("UPDATE stock SET quantity = quantity - 1 WHERE sku = %s", (self.parent.items_list[item]['sku'],))
            ids.append(str(self.parent.items_list[item]['id']))
        self.parent.cursor.execute("INSERT INTO purchases (`amount`, `method`, `items`) VALUES (%s, 'bitcoin', %s)", (self.parent.price_total, ','.join(ids)))
        self.parent.basket = []
        self.parent.discount = 0.0
        self.parent.update_basket()
        self.parent.conn.commit()

    def BitcoinErrorDone(self, event):
        self.method.SetLabel("")
        self.parent.CustomerFrame.method.SetLabel("")
        self.BitcoinError.Hide()
        self.BitcoinStep2.Hide()
        self.BitcoinPayment.Hide()
        self.Hide()
        self.parent.SetFocus()

    def FinalDone(self, event):
        self.FinalStep.Hide()
        self.parent.CustomerFrame.change.SetLabel("0.00")
        self.parent.CustomerFrame.paid.SetLabel("0.00")
        self.parent.CustomerFrame.total.SetLabel("0.00")
        self.parent.CustomerFrame.method.SetLabel("")
        self.Hide()
        self.parent.SetFocus()
        self.parent.close_ticket()


class CustomerFrame(gui.CustomerFrame):
    def __init__(self, parent):
        gui.CustomerFrame.__init__(self, parent)
        w = self.items.GetClientSize()[0]
        self.items.InsertColumn(0, 'Item', width=(w-220))
        self.items.InsertColumn(1, 'Price', width=220)
problem here 

    def set_qr(self, qr):
        bqr = io.BytesIO(qr)
        iqr = wx.Image(bqr)
        btm = wx.Bitmap(iqr)
        self.qrCode.SetBitmap(btm)


class MainFrame(gui.MainFrame):
    items_list = {}
    discounts_list = {}
    basket = []
    discount = 0.0
    price_total = 0.0
    IPhoneButtons = None
    PCButtons = None
    DiscountButtons = None
    BTCAddr = None

    def __init__(self, parent):
        gui.MainFrame.__init__(self, parent)
        icon = wx.Icon()
        icon.CopyFromBitmap(wx.Bitmap("img/icon.ico", wx.BITMAP_TYPE_ANY))
        self.SetIcon(icon)

        self.items.InsertColumn(0, 'Item', width=400)
        self.items.InsertColumn(1, 'Price', width=120)

        self.conn = pymysql.connect(
            db='cls',
            user='root',
            passwd='d3f3nd3r',
            host='81.134.30.44')
        self.cursor = self.conn.cursor(pymysql.cursors.DictCursor)

        self.cursor.execute("SELECT checkout_items.*, stock.quantity FROM checkout_items LEFT JOIN stock ON checkout_items.sku = stock.sku")
        self.add_items(self.cursor.fetchall())

        self.cursor.execute("SELECT * from discounts")
        self.add_discounts(self.cursor.fetchall())

        self.CustomerFrame = CustomerFrame(self)
        self.CustomerFrame.Show(True)
        self.PaymentFrame = PaymentFrame(self)

        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.bind(('', 50007))
        s.listen(1)
        threading.Thread(target=self.handle_incoming, args=(s,)).start()

    def handle_incoming(self, s):
        while 1:
            conn, addr = s.accept()
            data = ''
            while 1:
                recv = conn.recv(1024)
                if not recv:
                    break
                data += recv
            conn.close()
            data = data.replace('epos:', '')
            data = data.split(';')
            if data.__len__() == 2:
                self.ClearItems(None)
                ticket_id, item_ids = data
                self.ticketID.SetValue(ticket_id)
                items = item_ids.split(',')
                for item_id in items:
                    for item in self.items_list:
                        item = self.items_list[item]
                        if int(item['id']) == int(item_id):
                            self.basket.append(item['id'])
                            if self.items_list[item['id']]['quantity'] is not None:
                                self.items_list[item['id']]['quantity'] -= 1
                            if self.items_list[item['id']]['quantity'] <= 0:
                                self.items_list[item['id']]['button'].Disable()
                            break
                self.SetFocus()
                self.update_basket()

    def update_basket(self):
        self.items.DeleteAllItems()
        self.CustomerFrame.items.DeleteAllItems()
        self.price_total = 0.0
        for item in self.basket:
            self.items.InsertItem(self.items.GetItemCount(), self.items_list[item]['name'])
            self.items.SetItem(self.items.GetItemCount() - 1, 1, str(self.items_list[item]['price']))
            self.CustomerFrame.items.InsertItem(self.CustomerFrame.items.GetItemCount(), self.items_list[item]['name'])
            self.CustomerFrame.items.SetItem(self.CustomerFrame.items.GetItemCount() - 1, 1, str(self.items_list[item]['price']))
            self.price_total += self.items_list[item]['price']
        if self.discount > 0.0:
            self.items.InsertItem(self.items.GetItemCount(), 'Discount')
            self.items.SetItem(self.items.GetItemCount() - 1, 1, str(self.discount) + '%')
            self.CustomerFrame.items.InsertItem(self.items.GetItemCount(), 'Discount')
            self.CustomerFrame.items.SetItem(self.items.GetItemCount() - 1, 1, str(self.discount) + '%')
            self.price_total -= (self.price_total/100)*self.discount
        self.price_total = round(self.price_total, 2)
        self.total.SetLabel(str(self.price_total))
        self.CustomerFrame.total.SetLabel(str(self.price_total))
        self.Layout()

    def ShowIPhoneOptions(self, event):
        self.IPhoneOptions.Show()
        self.PCOptions.Hide()
        self.Layout()

    def ShowPCOptions(self, event):
        self.IPhoneOptions.Hide()
        self.PCOptions.Show()
        self.Layout()

    def add_item(self, event):
        button = event.GetEventObject()
        self.basket.append(button.item)
        if self.items_list[button.item]['quantity'] is not None:
            self.items_list[button.item]['quantity'] -= 1
            if self.items_list[button.item]['quantity'] <= 0:
                button.Disable()
        self.update_basket()

    def add_discount(self, event):
        button = event.GetEventObject()
        self.discount = self.discounts_list[button.discount]['amount']
        self.update_basket()

    def AddOther(self, event):
        if self.other_name.GetValue() != '' and self.other_price.GetValue() != '':
            self.items_list[str(self.other_name.GetValue())] = {'name': str(self.other_name.GetValue()), 'price': float(self.other_price.GetValue()), 'quantity': None, 'sku': '', 'id': 'other'}
            self.basket.append(str(self.other_name.GetValue()))
            self.other_name.SetValue('')
            self.other_price.SetValue('')
            self.update_basket()

    def ClearItems(self, event):
        for item in self.basket:
            if self.items_list[item]['quantity'] is not None:
                self.items_list[item]['quantity'] += 1
                self.items_list[item]['button'].Enable()
        self.basket = []
        self.discount = 0.0
        self.ticketID.SetValue("")
        self.update_basket()

    def PayCash(self, event):
        self.PaymentFrame.Show(True)
        self.PaymentFrame.method.SetLabel("Cash")
        self.CustomerFrame.method.SetLabel("Cash")
        self.PaymentFrame.CashPyment.Show()
        self.PaymentFrame.CashStep1.Show()
        self.PaymentFrame.Layout()

    def PayCard(self, event):
        self.PaymentFrame.Show()
        self.PaymentFrame.method.SetLabel("Card")
        self.CustomerFrame.method.SetLabel("Card")
        self.PaymentFrame.cardDue.SetLabel(str(round(self.price_total, 2)))
        self.PaymentFrame.CardPayment.Show()
        self.PaymentFrame.CardStep1.Show()
        self.PaymentFrame.Layout()

    def PayBitcoin(self, event):
        self.PaymentFrame.Show()
        self.PaymentFrame.method.SetLabel("Bitcoin")
        self.CustomerFrame.method.SetLabel("Bitcoin")
        self.PaymentFrame.BitcoinPayment.Show()
        self.PaymentFrame.BitcoinWait.Show()
        self.PaymentFrame.Layout()
        threading.Thread(target=self.generate_bitcoin).start()

    def close_ticket(self):
        ticket_id = self.ticketID.GetValue()
        if ticket_id != '':
            self.cursor.execute("UPDATE tickets SET `ts_id` = 6, `loc_id` = 7 WHERE `ti_id` = %s", (ticket_id.zfill(6),))
            self.conn.commit()
            self.ticketID.SetValue("")

    def generate_bitcoin(self):
        data = requests.get('http://api.bitcoincharts.com/v1/weighted_prices.json').json()
        price = float(data['GBP']['7d'])
        btc = self.price_total/price
        btc += (btc / 100) * 8
        data = requests.get('http://81.134.30.44/btc/getAddress.py?amount=%s' % (str(btc),)).json()
        if data['error'] != '':
            self.PaymentFrame.BitcoinWait.Hide()
            self.PaymentFrame.BitcoinError.Show()
            self.PaymentFrame.Layout()
            return
        qr = base64.b64decode(data['qr'])
        self.BTCAddr = data['addr']

        self.CustomerFrame.set_qr(qr)
        self.CustomerFrame.items.Hide()
        self.CustomerFrame.qrCode.Show()
        self.PaymentFrame.BitcoinWait.Hide()
        self.PaymentFrame.BitcoinStep1.Show()
        self.PaymentFrame.Layout()
        self.CustomerFrame.Layout()

    def add_items(self, items):
        iphone = []
        pc = []
        for item in items:
            self.items_list[item['id']] = item
            if item['type'] == 'iphone':
                iphone.append(item)
            elif item['type'] == 'pc':
                pc.append(item)

        self.IPhoneButtons = self.m_staticText111.GetContainingSizer()
        self.PCButtons = self.m_staticText11.GetContainingSizer()
        self.m_staticText11.Destroy()
        self.m_staticText111.Destroy()
        for item in iphone:
            button = wx.Button(self.IPhoneOptions, id=wx.ID_ANY, label=item['name'])
            button.SetFont(wx.Font(15, 70, 90, 90, False, wx.EmptyString))
            button.item = item['id']
            self.items_list[item['id']]['button'] = button
            button.Bind(wx.EVT_BUTTON, self.add_item)
            self.IPhoneButtons.Add(button, 0, wx.ALL, 5)
        for item in pc:
            button = wx.Button(self.PCOptions, id=wx.ID_ANY, label=item['name'])
            button.SetFont(wx.Font(15, 70, 90, 90, False, wx.EmptyString))
            button.item = item['id']
            self.items_list[item['id']]['button'] = button
            button.Bind(wx.EVT_BUTTON, self.add_item)
            self.PCButtons.Add(button, 0, wx.ALL, 5)
        self.IPhoneOptions.Layout()
        self.m_staticText9.GetContainingSizer().Fit(self.IPhoneOptions)
        self.PCOptions.Layout()
        self.m_staticText91.GetContainingSizer().Fit(self.IPhoneOptions)
        self.Layout()

    def add_discounts(self, discounts):
        self.DiscountButtons = self.m_staticText1111.GetContainingSizer()
        self.m_staticText1111.Destroy()
        for discount in discounts:
            self.discounts_list[discount['id']] = discount
            button = wx.Button(self, id=wx.ID_ANY, label=discount['name'] + ' ' + str(discount['amount']) + '%')
            button.SetFont(wx.Font(15, 70, 90, 90, False, wx.EmptyString))
            button.discount = discount['id']
            self.discounts_list[discount['id']]['button'] = button
            button.Bind(wx.EVT_BUTTON, self.add_discount)
            self.DiscountButtons.Add(button, 0, wx.ALL, 5)

app = wx.App(False)
frame = MainFrame(None)
frame.Show(True)
app.MainLoop()

gui.py (generated by wxformbuilder)

# -*- coding: utf-8 -*- 

###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc

###########################################################################
## Class MainFrame
###########################################################################

class MainFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,800 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHintsSz( wx.Size( 1200,800 ), wx.Size( 1200,800 ) )
      self.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer9 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer1 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer5 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer11 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_bitmap1 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.Size( -1,-1 ), 0 )
      bSizer11.Add( self.m_bitmap1, 0, wx.ALL, 5 )
      
      self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"Checkout System", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1.Wrap( -1 )
      self.m_staticText1.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText1.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer11.Add( self.m_staticText1, 0, wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer11, 0, wx.EXPAND, 5 )
      
      bSizer6 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText7 = wx.StaticText( self, wx.ID_ANY, u"Items", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText7.Wrap( -1 )
      self.m_staticText7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer6.Add( self.m_staticText7, 0, wx.ALL, 5 )
      
      gbSizer1 = wx.GridBagSizer( 0, 0 )
      gbSizer1.SetFlexibleDirection( wx.BOTH )
      gbSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_button2 = wx.Button( self, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button2.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button2, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      self.m_button3 = wx.Button( self, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button3.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button3, wx.GBPosition( 0, 1 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      bSizer7 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Other", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText5.Wrap( -1 )
      self.m_staticText5.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText5.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText5, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_name = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_name, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_staticText6 = wx.StaticText( self, wx.ID_ANY, u"Price", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText6.Wrap( -1 )
      self.m_staticText6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText6.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText6, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_price = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_price, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_button6 = wx.Button( self, wx.ID_ANY, u"Add", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer7.Add( self.m_button6, 0, wx.ALL, 5 )
      
      
      gbSizer1.Add( bSizer7, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 2 ), 0, 5 )
      
      
      bSizer6.Add( gbSizer1, 0, wx.EXPAND, 5 )
      
      self.IPhoneOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      gbSizer2 = wx.GridBagSizer( 0, 0 )
      gbSizer2.SetFlexibleDirection( wx.BOTH )
      gbSizer2.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText9 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText9.Wrap( -1 )
      self.m_staticText9.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer2.Add( self.m_staticText9, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      IPhoneButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText111 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText111.Wrap( -1 )
      self.m_staticText111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      IPhoneButtons.Add( self.m_staticText111, 0, wx.ALL, 5 )
      
      
      gbSizer2.Add( IPhoneButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.IPhoneOptions.SetSizer( gbSizer2 )
      self.IPhoneOptions.Layout()
      gbSizer2.Fit( self.IPhoneOptions )
      bSizer6.Add( self.IPhoneOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.PCOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.PCOptions.Hide()
      
      gbSizer3 = wx.GridBagSizer( 0, 0 )
      gbSizer3.SetFlexibleDirection( wx.BOTH )
      gbSizer3.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText91 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText91.Wrap( -1 )
      self.m_staticText91.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer3.Add( self.m_staticText91, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      PCButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText11 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText11.Wrap( -1 )
      self.m_staticText11.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      PCButtons.Add( self.m_staticText11, 0, wx.ALL, 5 )
      
      
      gbSizer3.Add( PCButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.PCOptions.SetSizer( gbSizer3 )
      self.PCOptions.Layout()
      gbSizer3.Fit( self.PCOptions )
      bSizer6.Add( self.PCOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer6, 1, wx.EXPAND, 5 )
      
      bSizer12 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText8 = wx.StaticText( self, wx.ID_ANY, u"Discounts", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText8.Wrap( -1 )
      self.m_staticText8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer12.Add( self.m_staticText8, 0, wx.ALL, 5 )
      
      DiscountButtons = wx.GridSizer( 0, 3, 0, 0 )
      
      self.m_staticText1111 = wx.StaticText( self, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1111.Wrap( -1 )
      self.m_staticText1111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      DiscountButtons.Add( self.m_staticText1111, 0, wx.ALL, 5 )
      
      
      bSizer12.Add( DiscountButtons, 1, wx.EXPAND, 5 )
      
      
      bSizer5.Add( bSizer12, 0, wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer5, 1, wx.EXPAND, 5 )
      
      bSizer2 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer3 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText2.Wrap( -1 )
      self.m_staticText2.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText2.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText2, 0, wx.ALL, 5 )
      
      self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText4.Wrap( -1 )
      self.m_staticText4.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText4.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText4, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.total.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_button111 = wx.Button( self, wx.ID_ANY, u"Clear", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button111.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer3.Add( self.m_button111, 0, wx.LEFT, 5 )
      
      
      bSizer2.Add( bSizer3, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_SINGLE_SEL )
      self.items.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer2.Add( self.items, 1, wx.ALL|wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer2, 1, wx.EXPAND, 5 )
      
      
      bSizer9.Add( bSizer1, 1, wx.EXPAND, 5 )
      
      bSizer33 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_button7 = wx.Button( self, wx.ID_ANY, u"Cash", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button7, 0, wx.ALL, 5 )
      
      self.m_button8 = wx.Button( self, wx.ID_ANY, u"Card", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button8, 0, wx.ALL, 5 )
      
      self.m_button11 = wx.Button( self, wx.ID_ANY, u"Bitcoin", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button11, 0, wx.ALL, 5 )
      
      self.m_staticText40 = wx.StaticText( self, wx.ID_ANY, u"Ticket ID (if applicable):", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText40.Wrap( -1 )
      self.m_staticText40.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_staticText40, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.ticketID = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ticketID.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer33.Add( self.ticketID, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      
      bSizer9.Add( bSizer33, 0, wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer9 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button2.Bind( wx.EVT_BUTTON, self.ShowIPhoneOptions )
      self.m_button3.Bind( wx.EVT_BUTTON, self.ShowPCOptions )
      self.m_button6.Bind( wx.EVT_BUTTON, self.AddOther )
      self.m_button111.Bind( wx.EVT_BUTTON, self.ClearItems )
      self.m_button7.Bind( wx.EVT_BUTTON, self.PayCash )
      self.m_button8.Bind( wx.EVT_BUTTON, self.PayCard )
      self.m_button11.Bind( wx.EVT_BUTTON, self.PayBitcoin )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def ShowIPhoneOptions( self, event ):
      event.Skip()
   
   def ShowPCOptions( self, event ):
      event.Skip()
   
   def AddOther( self, event ):
      event.Skip()
   
   def ClearItems( self, event ):
      event.Skip()
   
   def PayCash( self, event ):
      event.Skip()
   
   def PayCard( self, event ):
      event.Skip()
   
   def PayBitcoin( self, event ):
      event.Skip()
   

###########################################################################
## Class CustomerFrame
###########################################################################

class CustomerFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1000,600 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHintsSz( wx.Size( -1,-1 ), wx.Size( -1,-1 ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer14 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_bitmap3 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer14.Add( self.m_bitmap3, 0, wx.ALL|wx.EXPAND, 5 )
      
      bSizer16 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer10 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText16 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText16.Wrap( -1 )
      self.m_staticText16.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText16, 0, wx.ALL, 5 )
      
      self.m_staticText17 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText17.Wrap( -1 )
      self.m_staticText17.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText17, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer10, 1, wx.EXPAND, 5 )
      
      bSizer102 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText162 = wx.StaticText( self, wx.ID_ANY, u"Paid:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText162.Wrap( -1 )
      self.m_staticText162.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText162, 0, wx.ALL, 5 )
      
      self.m_staticText172 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText172.Wrap( -1 )
      self.m_staticText172.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText172, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.paid = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.paid.Wrap( -1 )
      self.paid.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.paid, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer102, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer16, 0, wx.EXPAND, 5 )
      
      bSizer15 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer101 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText161 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText161.Wrap( -1 )
      self.m_staticText161.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer101.Add( self.m_staticText161, 0, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer101.Add( self.method, 0, wx.ALL, 5 )
      
      
      bSizer15.Add( bSizer101, 1, wx.EXPAND, 5 )
      
      bSizer1021 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText1621 = wx.StaticText( self, wx.ID_ANY, u"Change:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1621.Wrap( -1 )
      self.m_staticText1621.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1621, 0, wx.ALL, 5 )
      
      self.m_staticText1721 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1721.Wrap( -1 )
      self.m_staticText1721.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1721, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.change = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.change.Wrap( -1 )
      self.change.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.change, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer15.Add( bSizer1021, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer15, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_VRULES )
      self.items.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer14.Add( self.items, 1, wx.EXPAND, 5 )
      
      self.qrCode = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.qrCode.Hide()
      
      bSizer14.Add( self.qrCode, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer14 )
      self.Layout()
      
      self.Centre( wx.BOTH )
   
   def __del__( self ):
      pass
   

###########################################################################
## Class PaymentFrame
###########################################################################

class PaymentFrame ( wx.Dialog ):
   
   def __init__( self, parent ):
      wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,300 ), style = wx.STAY_ON_TOP )
      
      self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer17 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText25 = wx.StaticText( self, wx.ID_ANY, u"Taking Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText25.Wrap( -1 )
      self.m_staticText25.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer17.Add( self.m_staticText25, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      bSizer18 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText26 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText26.Wrap( -1 )
      self.m_staticText26.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer18.Add( self.m_staticText26, 1, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer18.Add( self.method, 1, wx.ALL, 5 )
      
      
      bSizer17.Add( bSizer18, 0, wx.EXPAND, 5 )
      
      self.CashPyment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashPyment.Hide()
      
      bSizer19 = wx.BoxSizer( wx.VERTICAL )
      
      self.CashStep1 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep1.Hide()
      
      bSizer20 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer21 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText29 = wx.StaticText( self.CashStep1, wx.ID_ANY, u"Enter ammount paid: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText29.Wrap( -1 )
      self.m_staticText29.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer21.Add( self.m_staticText29, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.ammountPaidCash = wx.TextCtrl( self.CashStep1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ammountPaidCash.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer21.Add( self.ammountPaidCash, 1, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer20.Add( bSizer21, 1, wx.EXPAND, 5 )
      
      self.m_button7 = wx.Button( self.CashStep1, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer20.Add( self.m_button7, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep1.SetSizer( bSizer20 )
      self.CashStep1.Layout()
      bSizer20.Fit( self.CashStep1 )
      bSizer19.Add( self.CashStep1, 1, wx.EXPAND, 5 )
      
      self.CashStep2 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep2.Hide()
      
      bSizer22 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer211 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText291 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"Please give back: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText291.Wrap( -1 )
      self.m_staticText291.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText291, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cashChange = wx.StaticText( self.CashStep2, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cashChange.Wrap( -1 )
      self.cashChange.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer211.Add( self.cashChange, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText33 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"in change", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText33.Wrap( -1 )
      self.m_staticText33.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText33, 0, wx.ALL, 5 )
      
      
      bSizer22.Add( bSizer211, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button71 = wx.Button( self.CashStep2, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button71.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer22.Add( self.m_button71, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep2.SetSizer( bSizer22 )
      self.CashStep2.Layout()
      bSizer22.Fit( self.CashStep2 )
      bSizer19.Add( self.CashStep2, 1, wx.EXPAND, 5 )
      
      
      self.CashPyment.SetSizer( bSizer19 )
      self.CashPyment.Layout()
      bSizer19.Fit( self.CashPyment )
      bSizer17.Add( self.CashPyment, 1, wx.EXPAND, 5 )
      
      self.CardPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardPayment.Hide()
      
      bSizer25 = wx.BoxSizer( wx.VERTICAL )
      
      self.CardStep1 = wx.Panel( self.CardPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardStep1.Hide()
      
      bSizer261 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer27 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText331 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"Please take £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText331.Wrap( -1 )
      self.m_staticText331.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText331, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cardDue = wx.StaticText( self.CardStep1, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cardDue.Wrap( -1 )
      self.cardDue.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer27.Add( self.cardDue, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText35 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"on the card machine", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText35.Wrap( -1 )
      self.m_staticText35.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText35, 0, wx.ALL, 5 )
      
      
      bSizer261.Add( bSizer27, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button10 = wx.Button( self.CardStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button10.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer261.Add( self.m_button10, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CardStep1.SetSizer( bSizer261 )
      self.CardStep1.Layout()
      bSizer261.Fit( self.CardStep1 )
      bSizer25.Add( self.CardStep1, 1, wx.EXPAND, 5 )
      
      
      self.CardPayment.SetSizer( bSizer25 )
      self.CardPayment.Layout()
      bSizer25.Fit( self.CardPayment )
      bSizer17.Add( self.CardPayment, 1, wx.EXPAND, 5 )
      
      self.BitcoinPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinPayment.Hide()
      
      bSizer28 = wx.BoxSizer( wx.VERTICAL )
      
      self.BitcoinWait = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinWait.Hide()
      
      bSizer291 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText361 = wx.StaticText( self.BitcoinWait, wx.ID_ANY, u"Please wait while the payment details are generated", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText361.Wrap( -1 )
      self.m_staticText361.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer291.Add( self.m_staticText361, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinWait.SetSizer( bSizer291 )
      self.BitcoinWait.Layout()
      bSizer291.Fit( self.BitcoinWait )
      bSizer28.Add( self.BitcoinWait, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinStep1 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep1.Hide()
      
      bSizer29 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText36 = wx.StaticText( self.BitcoinStep1, wx.ID_ANY, u"Get the customer to scan QR code on screen", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText36.Wrap( -1 )
      self.m_staticText36.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_staticText36, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button12 = wx.Button( self.BitcoinStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button12.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_button12, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep1.SetSizer( bSizer29 )
      self.BitcoinStep1.Layout()
      bSizer29.Fit( self.BitcoinStep1 )
      bSizer28.Add( self.BitcoinStep1, 1, wx.EXPAND, 5 )
      
      self.BitcoinStep2 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep2.Hide()
      
      bSizer293 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText363 = wx.StaticText( self.BitcoinStep2, wx.ID_ANY, u"Waiting for payment to arive", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText363.Wrap( -1 )
      self.m_staticText363.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_staticText363, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button17 = wx.Button( self.BitcoinStep2, wx.ID_ANY, u"Cancel Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button17.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_button17, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep2.SetSizer( bSizer293 )
      self.BitcoinStep2.Layout()
      bSizer293.Fit( self.BitcoinStep2 )
      bSizer28.Add( self.BitcoinStep2, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinError = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinError.Hide()
      
      bSizer292 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText362 = wx.StaticText( self.BitcoinError, wx.ID_ANY, u"The payment server is currently unavailable", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText362.Wrap( -1 )
      self.m_staticText362.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_staticText362, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button121 = wx.Button( self.BitcoinError, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button121.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_button121, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinError.SetSizer( bSizer292 )
      self.BitcoinError.Layout()
      bSizer292.Fit( self.BitcoinError )
      bSizer28.Add( self.BitcoinError, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.BitcoinPayment.SetSizer( bSizer28 )
      self.BitcoinPayment.Layout()
      bSizer28.Fit( self.BitcoinPayment )
      bSizer17.Add( self.BitcoinPayment, 1, wx.EXPAND, 5 )
      
      self.FinalStep = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.FinalStep.Hide()
      
      bSizer26 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText34 = wx.StaticText( self.FinalStep, wx.ID_ANY, u"Payment Successful", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText34.Wrap( -1 )
      self.m_staticText34.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_staticText34, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button11 = wx.Button( self.FinalStep, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_button11, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.FinalStep.SetSizer( bSizer26 )
      self.FinalStep.Layout()
      bSizer26.Fit( self.FinalStep )
      bSizer17.Add( self.FinalStep, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.SetSizer( bSizer17 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button7.Bind( wx.EVT_BUTTON, self.CashStep1Done )
      self.m_button71.Bind( wx.EVT_BUTTON, self.CashStep2Done )
      self.m_button10.Bind( wx.EVT_BUTTON, self.CardDone )
      self.m_button12.Bind( wx.EVT_BUTTON, self.BitcoinStep1Done )
      self.m_button17.Bind( wx.EVT_BUTTON, self.BitcoinErrorDome )
      self.m_button121.Bind( wx.EVT_BUTTON, self.BitcoinErrorDone )
      self.m_button11.Bind( wx.EVT_BUTTON, self.FinalDone )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def CashStep1Done( self, event ):
      event.Skip()
   
   def CashStep2Done( self, event ):
      event.Skip()
   
   def CardDone( self, event ):
      event.Skip()
   
   def BitcoinStep1Done( self, event ):
      event.Skip()
   
   def BitcoinErrorDome( self, event ):
      event.Skip()
   
   def BitcoinErrorDone( self, event ):
      event.Skip()
   
   def FinalDone( self, event ):
      event.Skip()
   

# -*- coding: utf-8 -*- 

###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc

###########################################################################
## Class MainFrame
###########################################################################

class MainFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,800 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHintsSz( wx.Size( 1200,800 ), wx.Size( 1200,800 ) )
      self.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer9 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer1 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer5 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer11 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_bitmap1 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.Size( -1,-1 ), 0 )
      bSizer11.Add( self.m_bitmap1, 0, wx.ALL, 5 )
      
      self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"Checkout System", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1.Wrap( -1 )
      self.m_staticText1.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText1.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer11.Add( self.m_staticText1, 0, wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer11, 0, wx.EXPAND, 5 )
      
      bSizer6 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText7 = wx.StaticText( self, wx.ID_ANY, u"Items", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText7.Wrap( -1 )
      self.m_staticText7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer6.Add( self.m_staticText7, 0, wx.ALL, 5 )
      
      gbSizer1 = wx.GridBagSizer( 0, 0 )
      gbSizer1.SetFlexibleDirection( wx.BOTH )
      gbSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_button2 = wx.Button( self, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button2.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button2, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      self.m_button3 = wx.Button( self, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button3.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button3, wx.GBPosition( 0, 1 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      bSizer7 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Other", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText5.Wrap( -1 )
      self.m_staticText5.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText5.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText5, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_name = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_name, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_staticText6 = wx.StaticText( self, wx.ID_ANY, u"Price", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText6.Wrap( -1 )
      self.m_staticText6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText6.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText6, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_price = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_price, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_button6 = wx.Button( self, wx.ID_ANY, u"Add", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer7.Add( self.m_button6, 0, wx.ALL, 5 )
      
      
      gbSizer1.Add( bSizer7, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 2 ), 0, 5 )
      
      
      bSizer6.Add( gbSizer1, 0, wx.EXPAND, 5 )
      
      self.IPhoneOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      gbSizer2 = wx.GridBagSizer( 0, 0 )
      gbSizer2.SetFlexibleDirection( wx.BOTH )
      gbSizer2.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText9 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText9.Wrap( -1 )
      self.m_staticText9.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer2.Add( self.m_staticText9, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      IPhoneButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText111 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText111.Wrap( -1 )
      self.m_staticText111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      IPhoneButtons.Add( self.m_staticText111, 0, wx.ALL, 5 )
      
      
      gbSizer2.Add( IPhoneButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.IPhoneOptions.SetSizer( gbSizer2 )
      self.IPhoneOptions.Layout()
      gbSizer2.Fit( self.IPhoneOptions )
      bSizer6.Add( self.IPhoneOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.PCOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.PCOptions.Hide()
      
      gbSizer3 = wx.GridBagSizer( 0, 0 )
      gbSizer3.SetFlexibleDirection( wx.BOTH )
      gbSizer3.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText91 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText91.Wrap( -1 )
      self.m_staticText91.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer3.Add( self.m_staticText91, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      PCButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText11 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText11.Wrap( -1 )
      self.m_staticText11.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      PCButtons.Add( self.m_staticText11, 0, wx.ALL, 5 )
      
      
      gbSizer3.Add( PCButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.PCOptions.SetSizer( gbSizer3 )
      self.PCOptions.Layout()
      gbSizer3.Fit( self.PCOptions )
      bSizer6.Add( self.PCOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer6, 1, wx.EXPAND, 5 )
      
      bSizer12 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText8 = wx.StaticText( self, wx.ID_ANY, u"Discounts", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText8.Wrap( -1 )
      self.m_staticText8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer12.Add( self.m_staticText8, 0, wx.ALL, 5 )
      
      DiscountButtons = wx.GridSizer( 0, 3, 0, 0 )
      
      self.m_staticText1111 = wx.StaticText( self, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1111.Wrap( -1 )
      self.m_staticText1111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      DiscountButtons.Add( self.m_staticText1111, 0, wx.ALL, 5 )
      
      
      bSizer12.Add( DiscountButtons, 1, wx.EXPAND, 5 )
      
      
      bSizer5.Add( bSizer12, 0, wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer5, 1, wx.EXPAND, 5 )
      
      bSizer2 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer3 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText2.Wrap( -1 )
      self.m_staticText2.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText2.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText2, 0, wx.ALL, 5 )
      
      self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText4.Wrap( -1 )
      self.m_staticText4.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText4.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText4, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.total.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_button111 = wx.Button( self, wx.ID_ANY, u"Clear", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button111.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer3.Add( self.m_button111, 0, wx.LEFT, 5 )
      
      
      bSizer2.Add( bSizer3, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_SINGLE_SEL )
      self.items.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer2.Add( self.items, 1, wx.ALL|wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer2, 1, wx.EXPAND, 5 )
      
      
      bSizer9.Add( bSizer1, 1, wx.EXPAND, 5 )
      
      bSizer33 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_button7 = wx.Button( self, wx.ID_ANY, u"Cash", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button7, 0, wx.ALL, 5 )
      
      self.m_button8 = wx.Button( self, wx.ID_ANY, u"Card", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button8, 0, wx.ALL, 5 )
      
      self.m_button11 = wx.Button( self, wx.ID_ANY, u"Bitcoin", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button11, 0, wx.ALL, 5 )
      
      self.m_staticText40 = wx.StaticText( self, wx.ID_ANY, u"Ticket ID (if applicable):", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText40.Wrap( -1 )
      self.m_staticText40.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_staticText40, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.ticketID = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ticketID.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer33.Add( self.ticketID, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      
      bSizer9.Add( bSizer33, 0, wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer9 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button2.Bind( wx.EVT_BUTTON, self.ShowIPhoneOptions )
      self.m_button3.Bind( wx.EVT_BUTTON, self.ShowPCOptions )
      self.m_button6.Bind( wx.EVT_BUTTON, self.AddOther )
      self.m_button111.Bind( wx.EVT_BUTTON, self.ClearItems )
      self.m_button7.Bind( wx.EVT_BUTTON, self.PayCash )
      self.m_button8.Bind( wx.EVT_BUTTON, self.PayCard )
      self.m_button11.Bind( wx.EVT_BUTTON, self.PayBitcoin )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def ShowIPhoneOptions( self, event ):
      event.Skip()
   
   def ShowPCOptions( self, event ):
      event.Skip()
   
   def AddOther( self, event ):
      event.Skip()
   
   def ClearItems( self, event ):
      event.Skip()
   
   def PayCash( self, event ):
      event.Skip()
   
   def PayCard( self, event ):
      event.Skip()
   
   def PayBitcoin( self, event ):
      event.Skip()
   

###########################################################################
## Class CustomerFrame
###########################################################################

class CustomerFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1000,600 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHintsSz( wx.Size( -1,-1 ), wx.Size( -1,-1 ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer14 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_bitmap3 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer14.Add( self.m_bitmap3, 0, wx.ALL|wx.EXPAND, 5 )
      
      bSizer16 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer10 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText16 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText16.Wrap( -1 )
      self.m_staticText16.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText16, 0, wx.ALL, 5 )
      
      self.m_staticText17 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText17.Wrap( -1 )
      self.m_staticText17.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText17, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer10, 1, wx.EXPAND, 5 )
      
      bSizer102 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText162 = wx.StaticText( self, wx.ID_ANY, u"Paid:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText162.Wrap( -1 )
      self.m_staticText162.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText162, 0, wx.ALL, 5 )
      
      self.m_staticText172 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText172.Wrap( -1 )
      self.m_staticText172.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText172, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.paid = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.paid.Wrap( -1 )
      self.paid.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.paid, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer102, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer16, 0, wx.EXPAND, 5 )
      
      bSizer15 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer101 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText161 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText161.Wrap( -1 )
      self.m_staticText161.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer101.Add( self.m_staticText161, 0, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer101.Add( self.method, 0, wx.ALL, 5 )
      
      
      bSizer15.Add( bSizer101, 1, wx.EXPAND, 5 )
      
      bSizer1021 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText1621 = wx.StaticText( self, wx.ID_ANY, u"Change:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1621.Wrap( -1 )
      self.m_staticText1621.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1621, 0, wx.ALL, 5 )
      
      self.m_staticText1721 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1721.Wrap( -1 )
      self.m_staticText1721.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1721, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.change = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.change.Wrap( -1 )
      self.change.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.change, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer15.Add( bSizer1021, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer15, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_VRULES )
      self.items.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer14.Add( self.items, 1, wx.EXPAND, 5 )
      
      self.qrCode = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.qrCode.Hide()
      
      bSizer14.Add( self.qrCode, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer14 )
      self.Layout()
      
      self.Centre( wx.BOTH )
   
   def __del__( self ):
      pass
   

###########################################################################
## Class PaymentFrame
###########################################################################

class PaymentFrame ( wx.Dialog ):
   
   def __init__( self, parent ):
      wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,300 ), style = wx.STAY_ON_TOP )
      
      self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer17 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText25 = wx.StaticText( self, wx.ID_ANY, u"Taking Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText25.Wrap( -1 )
      self.m_staticText25.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer17.Add( self.m_staticText25, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      bSizer18 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText26 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText26.Wrap( -1 )
      self.m_staticText26.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer18.Add( self.m_staticText26, 1, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer18.Add( self.method, 1, wx.ALL, 5 )
      
      
      bSizer17.Add( bSizer18, 0, wx.EXPAND, 5 )
      
      self.CashPyment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashPyment.Hide()
      
      bSizer19 = wx.BoxSizer( wx.VERTICAL )
      
      self.CashStep1 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep1.Hide()
      
      bSizer20 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer21 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText29 = wx.StaticText( self.CashStep1, wx.ID_ANY, u"Enter ammount paid: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText29.Wrap( -1 )
      self.m_staticText29.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer21.Add( self.m_staticText29, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.ammountPaidCash = wx.TextCtrl( self.CashStep1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ammountPaidCash.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer21.Add( self.ammountPaidCash, 1, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer20.Add( bSizer21, 1, wx.EXPAND, 5 )
      
      self.m_button7 = wx.Button( self.CashStep1, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer20.Add( self.m_button7, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep1.SetSizer( bSizer20 )
      self.CashStep1.Layout()
      bSizer20.Fit( self.CashStep1 )
      bSizer19.Add( self.CashStep1, 1, wx.EXPAND, 5 )
      
      self.CashStep2 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep2.Hide()
      
      bSizer22 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer211 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText291 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"Please give back: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText291.Wrap( -1 )
      self.m_staticText291.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText291, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cashChange = wx.StaticText( self.CashStep2, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cashChange.Wrap( -1 )
      self.cashChange.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer211.Add( self.cashChange, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText33 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"in change", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText33.Wrap( -1 )
      self.m_staticText33.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText33, 0, wx.ALL, 5 )
      
      
      bSizer22.Add( bSizer211, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button71 = wx.Button( self.CashStep2, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button71.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer22.Add( self.m_button71, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep2.SetSizer( bSizer22 )
      self.CashStep2.Layout()
      bSizer22.Fit( self.CashStep2 )
      bSizer19.Add( self.CashStep2, 1, wx.EXPAND, 5 )
      
      
      self.CashPyment.SetSizer( bSizer19 )
      self.CashPyment.Layout()
      bSizer19.Fit( self.CashPyment )
      bSizer17.Add( self.CashPyment, 1, wx.EXPAND, 5 )
      
      self.CardPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardPayment.Hide()
      
      bSizer25 = wx.BoxSizer( wx.VERTICAL )
      
      self.CardStep1 = wx.Panel( self.CardPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardStep1.Hide()
      
      bSizer261 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer27 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText331 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"Please take £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText331.Wrap( -1 )
      self.m_staticText331.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText331, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cardDue = wx.StaticText( self.CardStep1, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cardDue.Wrap( -1 )
      self.cardDue.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer27.Add( self.cardDue, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText35 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"on the card machine", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText35.Wrap( -1 )
      self.m_staticText35.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText35, 0, wx.ALL, 5 )
      
      
      bSizer261.Add( bSizer27, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button10 = wx.Button( self.CardStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button10.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer261.Add( self.m_button10, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CardStep1.SetSizer( bSizer261 )
      self.CardStep1.Layout()
      bSizer261.Fit( self.CardStep1 )
      bSizer25.Add( self.CardStep1, 1, wx.EXPAND, 5 )
      
      
      self.CardPayment.SetSizer( bSizer25 )
      self.CardPayment.Layout()
      bSizer25.Fit( self.CardPayment )
      bSizer17.Add( self.CardPayment, 1, wx.EXPAND, 5 )
      
      self.BitcoinPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinPayment.Hide()
      
      bSizer28 = wx.BoxSizer( wx.VERTICAL )
      
      self.BitcoinWait = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinWait.Hide()
      
      bSizer291 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText361 = wx.StaticText( self.BitcoinWait, wx.ID_ANY, u"Please wait while the payment details are generated", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText361.Wrap( -1 )
      self.m_staticText361.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer291.Add( self.m_staticText361, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinWait.SetSizer( bSizer291 )
      self.BitcoinWait.Layout()
      bSizer291.Fit( self.BitcoinWait )
      bSizer28.Add( self.BitcoinWait, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinStep1 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep1.Hide()
      
      bSizer29 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText36 = wx.StaticText( self.BitcoinStep1, wx.ID_ANY, u"Get the customer to scan QR code on screen", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText36.Wrap( -1 )
      self.m_staticText36.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_staticText36, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button12 = wx.Button( self.BitcoinStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button12.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_button12, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep1.SetSizer( bSizer29 )
      self.BitcoinStep1.Layout()
      bSizer29.Fit( self.BitcoinStep1 )
      bSizer28.Add( self.BitcoinStep1, 1, wx.EXPAND, 5 )
      
      self.BitcoinStep2 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep2.Hide()
      
      bSizer293 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText363 = wx.StaticText( self.BitcoinStep2, wx.ID_ANY, u"Waiting for payment to arive", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText363.Wrap( -1 )
      self.m_staticText363.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_staticText363, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button17 = wx.Button( self.BitcoinStep2, wx.ID_ANY, u"Cancel Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button17.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_button17, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep2.SetSizer( bSizer293 )
      self.BitcoinStep2.Layout()
      bSizer293.Fit( self.BitcoinStep2 )
      bSizer28.Add( self.BitcoinStep2, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinError = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinError.Hide()
      
      bSizer292 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText362 = wx.StaticText( self.BitcoinError, wx.ID_ANY, u"The payment server is currently unavailable", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText362.Wrap( -1 )
      self.m_staticText362.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_staticText362, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button121 = wx.Button( self.BitcoinError, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button121.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_button121, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinError.SetSizer( bSizer292 )
      self.BitcoinError.Layout()
      bSizer292.Fit( self.BitcoinError )
      bSizer28.Add( self.BitcoinError, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.BitcoinPayment.SetSizer( bSizer28 )
      self.BitcoinPayment.Layout()
      bSizer28.Fit( self.BitcoinPayment )
      bSizer17.Add( self.BitcoinPayment, 1, wx.EXPAND, 5 )
      
      self.FinalStep = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.FinalStep.Hide()
      
      bSizer26 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText34 = wx.StaticText( self.FinalStep, wx.ID_ANY, u"Payment Successful", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText34.Wrap( -1 )
      self.m_staticText34.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_staticText34, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button11 = wx.Button( self.FinalStep, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_button11, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.FinalStep.SetSizer( bSizer26 )
      self.FinalStep.Layout()
      bSizer26.Fit( self.FinalStep )
      bSizer17.Add( self.FinalStep, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.SetSizer( bSizer17 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button7.Bind( wx.EVT_BUTTON, self.CashStep1Done )
      self.m_button71.Bind( wx.EVT_BUTTON, self.CashStep2Done )
      self.m_button10.Bind( wx.EVT_BUTTON, self.CardDone )
      self.m_button12.Bind( wx.EVT_BUTTON, self.BitcoinStep1Done )
      self.m_button17.Bind( wx.EVT_BUTTON, self.BitcoinErrorDome )
      self.m_button121.Bind( wx.EVT_BUTTON, self.BitcoinErrorDone )
      self.m_button11.Bind( wx.EVT_BUTTON, self.FinalDone )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def CashStep1Done( self, event ):
      event.Skip()
   
   def CashStep2Done( self, event ):
      event.Skip()
   
   def CardDone( self, event ):
      event.Skip()
   
   def BitcoinStep1Done( self, event ):
      event.Skip()
   
   def BitcoinErrorDome( self, event ):
      event.Skip()
   
   def BitcoinErrorDone( self, event ):
      event.Skip()
   
   def FinalDone( self, event ):
      event.Skip()
   

# -*- coding: utf-8 -*- 

###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc

###########################################################################
## Class MainFrame
###########################################################################

class MainFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,800 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHintsSz( wx.Size( 1200,800 ), wx.Size( 1200,800 ) )
      self.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer9 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer1 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer5 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer11 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_bitmap1 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.Size( -1,-1 ), 0 )
      bSizer11.Add( self.m_bitmap1, 0, wx.ALL, 5 )
      
      self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"Checkout System", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1.Wrap( -1 )
      self.m_staticText1.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText1.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer11.Add( self.m_staticText1, 0, wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer11, 0, wx.EXPAND, 5 )
      
      bSizer6 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText7 = wx.StaticText( self, wx.ID_ANY, u"Items", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText7.Wrap( -1 )
      self.m_staticText7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer6.Add( self.m_staticText7, 0, wx.ALL, 5 )
      
      gbSizer1 = wx.GridBagSizer( 0, 0 )
      gbSizer1.SetFlexibleDirection( wx.BOTH )
      gbSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_button2 = wx.Button( self, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button2.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button2, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      self.m_button3 = wx.Button( self, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button3.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button3, wx.GBPosition( 0, 1 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      bSizer7 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Other", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText5.Wrap( -1 )
      self.m_staticText5.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText5.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText5, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_name = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_name, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_staticText6 = wx.StaticText( self, wx.ID_ANY, u"Price", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText6.Wrap( -1 )
      self.m_staticText6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText6.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText6, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_price = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_price, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_button6 = wx.Button( self, wx.ID_ANY, u"Add", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer7.Add( self.m_button6, 0, wx.ALL, 5 )
      
      
      gbSizer1.Add( bSizer7, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 2 ), 0, 5 )
      
      
      bSizer6.Add( gbSizer1, 0, wx.EXPAND, 5 )
      
      self.IPhoneOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      gbSizer2 = wx.GridBagSizer( 0, 0 )
      gbSizer2.SetFlexibleDirection( wx.BOTH )
      gbSizer2.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText9 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText9.Wrap( -1 )
      self.m_staticText9.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer2.Add( self.m_staticText9, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      IPhoneButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText111 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText111.Wrap( -1 )
      self.m_staticText111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      IPhoneButtons.Add( self.m_staticText111, 0, wx.ALL, 5 )
      
      
      gbSizer2.Add( IPhoneButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.IPhoneOptions.SetSizer( gbSizer2 )
      self.IPhoneOptions.Layout()
      gbSizer2.Fit( self.IPhoneOptions )
      bSizer6.Add( self.IPhoneOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.PCOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.PCOptions.Hide()
      
      gbSizer3 = wx.GridBagSizer( 0, 0 )
      gbSizer3.SetFlexibleDirection( wx.BOTH )
      gbSizer3.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText91 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText91.Wrap( -1 )
      self.m_staticText91.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer3.Add( self.m_staticText91, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      PCButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText11 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText11.Wrap( -1 )
      self.m_staticText11.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      PCButtons.Add( self.m_staticText11, 0, wx.ALL, 5 )
      
      
      gbSizer3.Add( PCButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.PCOptions.SetSizer( gbSizer3 )
      self.PCOptions.Layout()
      gbSizer3.Fit( self.PCOptions )
      bSizer6.Add( self.PCOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer6, 1, wx.EXPAND, 5 )
      
      bSizer12 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText8 = wx.StaticText( self, wx.ID_ANY, u"Discounts", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText8.Wrap( -1 )
      self.m_staticText8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer12.Add( self.m_staticText8, 0, wx.ALL, 5 )
      
      DiscountButtons = wx.GridSizer( 0, 3, 0, 0 )
      
      self.m_staticText1111 = wx.StaticText( self, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1111.Wrap( -1 )
      self.m_staticText1111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      DiscountButtons.Add( self.m_staticText1111, 0, wx.ALL, 5 )
      
      
      bSizer12.Add( DiscountButtons, 1, wx.EXPAND, 5 )
      
      
      bSizer5.Add( bSizer12, 0, wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer5, 1, wx.EXPAND, 5 )
      
      bSizer2 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer3 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText2.Wrap( -1 )
      self.m_staticText2.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText2.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText2, 0, wx.ALL, 5 )
      
      self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText4.Wrap( -1 )
      self.m_staticText4.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText4.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText4, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.total.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_button111 = wx.Button( self, wx.ID_ANY, u"Clear", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button111.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer3.Add( self.m_button111, 0, wx.LEFT, 5 )
      
      
      bSizer2.Add( bSizer3, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_SINGLE_SEL )
      self.items.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer2.Add( self.items, 1, wx.ALL|wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer2, 1, wx.EXPAND, 5 )
      
      
      bSizer9.Add( bSizer1, 1, wx.EXPAND, 5 )
      
      bSizer33 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_button7 = wx.Button( self, wx.ID_ANY, u"Cash", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button7, 0, wx.ALL, 5 )
      
      self.m_button8 = wx.Button( self, wx.ID_ANY, u"Card", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button8, 0, wx.ALL, 5 )
      
      self.m_button11 = wx.Button( self, wx.ID_ANY, u"Bitcoin", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button11, 0, wx.ALL, 5 )
      
      self.m_staticText40 = wx.StaticText( self, wx.ID_ANY, u"Ticket ID (if applicable):", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText40.Wrap( -1 )
      self.m_staticText40.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_staticText40, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.ticketID = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ticketID.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer33.Add( self.ticketID, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      
      bSizer9.Add( bSizer33, 0, wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer9 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button2.Bind( wx.EVT_BUTTON, self.ShowIPhoneOptions )
      self.m_button3.Bind( wx.EVT_BUTTON, self.ShowPCOptions )
      self.m_button6.Bind( wx.EVT_BUTTON, self.AddOther )
      self.m_button111.Bind( wx.EVT_BUTTON, self.ClearItems )
      self.m_button7.Bind( wx.EVT_BUTTON, self.PayCash )
      self.m_button8.Bind( wx.EVT_BUTTON, self.PayCard )
      self.m_button11.Bind( wx.EVT_BUTTON, self.PayBitcoin )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def ShowIPhoneOptions( self, event ):
      event.Skip()
   
   def ShowPCOptions( self, event ):
      event.Skip()
   
   def AddOther( self, event ):
      event.Skip()
   
   def ClearItems( self, event ):
      event.Skip()
   
   def PayCash( self, event ):
      event.Skip()
   
   def PayCard( self, event ):
      event.Skip()
   
   def PayBitcoin( self, event ):
      event.Skip()
   

###########################################################################
## Class CustomerFrame
###########################################################################

class CustomerFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1000,600 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHintsSz( wx.Size( -1,-1 ), wx.Size( -1,-1 ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer14 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_bitmap3 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer14.Add( self.m_bitmap3, 0, wx.ALL|wx.EXPAND, 5 )
      
      bSizer16 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer10 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText16 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText16.Wrap( -1 )
      self.m_staticText16.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText16, 0, wx.ALL, 5 )
      
      self.m_staticText17 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText17.Wrap( -1 )
      self.m_staticText17.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText17, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer10, 1, wx.EXPAND, 5 )
      
      bSizer102 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText162 = wx.StaticText( self, wx.ID_ANY, u"Paid:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText162.Wrap( -1 )
      self.m_staticText162.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText162, 0, wx.ALL, 5 )
      
      self.m_staticText172 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText172.Wrap( -1 )
      self.m_staticText172.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText172, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.paid = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.paid.Wrap( -1 )
      self.paid.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.paid, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer102, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer16, 0, wx.EXPAND, 5 )
      
      bSizer15 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer101 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText161 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText161.Wrap( -1 )
      self.m_staticText161.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer101.Add( self.m_staticText161, 0, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer101.Add( self.method, 0, wx.ALL, 5 )
      
      
      bSizer15.Add( bSizer101, 1, wx.EXPAND, 5 )
      
      bSizer1021 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText1621 = wx.StaticText( self, wx.ID_ANY, u"Change:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1621.Wrap( -1 )
      self.m_staticText1621.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1621, 0, wx.ALL, 5 )
      
      self.m_staticText1721 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1721.Wrap( -1 )
      self.m_staticText1721.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1721, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.change = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.change.Wrap( -1 )
      self.change.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.change, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer15.Add( bSizer1021, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer15, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_VRULES )
      self.items.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer14.Add( self.items, 1, wx.EXPAND, 5 )
      
      self.qrCode = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.qrCode.Hide()
      
      bSizer14.Add( self.qrCode, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer14 )
      self.Layout()
      
      self.Centre( wx.BOTH )
   
   def __del__( self ):
      pass
   

###########################################################################
## Class PaymentFrame
###########################################################################

class PaymentFrame ( wx.Dialog ):
   
   def __init__( self, parent ):
      wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,300 ), style = wx.STAY_ON_TOP )
      
      self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer17 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText25 = wx.StaticText( self, wx.ID_ANY, u"Taking Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText25.Wrap( -1 )
      self.m_staticText25.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer17.Add( self.m_staticText25, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      bSizer18 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText26 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText26.Wrap( -1 )
      self.m_staticText26.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer18.Add( self.m_staticText26, 1, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer18.Add( self.method, 1, wx.ALL, 5 )
      
      
      bSizer17.Add( bSizer18, 0, wx.EXPAND, 5 )
      
      self.CashPyment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashPyment.Hide()
      
      bSizer19 = wx.BoxSizer( wx.VERTICAL )
      
      self.CashStep1 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep1.Hide()
      
      bSizer20 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer21 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText29 = wx.StaticText( self.CashStep1, wx.ID_ANY, u"Enter ammount paid: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText29.Wrap( -1 )
      self.m_staticText29.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer21.Add( self.m_staticText29, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.ammountPaidCash = wx.TextCtrl( self.CashStep1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ammountPaidCash.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer21.Add( self.ammountPaidCash, 1, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer20.Add( bSizer21, 1, wx.EXPAND, 5 )
      
      self.m_button7 = wx.Button( self.CashStep1, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer20.Add( self.m_button7, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep1.SetSizer( bSizer20 )
      self.CashStep1.Layout()
      bSizer20.Fit( self.CashStep1 )
      bSizer19.Add( self.CashStep1, 1, wx.EXPAND, 5 )
      
      self.CashStep2 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep2.Hide()
      
      bSizer22 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer211 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText291 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"Please give back: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText291.Wrap( -1 )
      self.m_staticText291.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText291, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cashChange = wx.StaticText( self.CashStep2, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cashChange.Wrap( -1 )
      self.cashChange.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer211.Add( self.cashChange, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText33 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"in change", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText33.Wrap( -1 )
      self.m_staticText33.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText33, 0, wx.ALL, 5 )
      
      
      bSizer22.Add( bSizer211, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button71 = wx.Button( self.CashStep2, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button71.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer22.Add( self.m_button71, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep2.SetSizer( bSizer22 )
      self.CashStep2.Layout()
      bSizer22.Fit( self.CashStep2 )
      bSizer19.Add( self.CashStep2, 1, wx.EXPAND, 5 )
      
      
      self.CashPyment.SetSizer( bSizer19 )
      self.CashPyment.Layout()
      bSizer19.Fit( self.CashPyment )
      bSizer17.Add( self.CashPyment, 1, wx.EXPAND, 5 )
      
      self.CardPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardPayment.Hide()
      
      bSizer25 = wx.BoxSizer( wx.VERTICAL )
      
      self.CardStep1 = wx.Panel( self.CardPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardStep1.Hide()
      
      bSizer261 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer27 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText331 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"Please take £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText331.Wrap( -1 )
      self.m_staticText331.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText331, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cardDue = wx.StaticText( self.CardStep1, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cardDue.Wrap( -1 )
      self.cardDue.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer27.Add( self.cardDue, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText35 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"on the card machine", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText35.Wrap( -1 )
      self.m_staticText35.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText35, 0, wx.ALL, 5 )
      
      
      bSizer261.Add( bSizer27, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button10 = wx.Button( self.CardStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button10.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer261.Add( self.m_button10, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CardStep1.SetSizer( bSizer261 )
      self.CardStep1.Layout()
      bSizer261.Fit( self.CardStep1 )
      bSizer25.Add( self.CardStep1, 1, wx.EXPAND, 5 )
      
      
      self.CardPayment.SetSizer( bSizer25 )
      self.CardPayment.Layout()
      bSizer25.Fit( self.CardPayment )
      bSizer17.Add( self.CardPayment, 1, wx.EXPAND, 5 )
      
      self.BitcoinPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinPayment.Hide()
      
      bSizer28 = wx.BoxSizer( wx.VERTICAL )
      
      self.BitcoinWait = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinWait.Hide()
      
      bSizer291 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText361 = wx.StaticText( self.BitcoinWait, wx.ID_ANY, u"Please wait while the payment details are generated", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText361.Wrap( -1 )
      self.m_staticText361.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer291.Add( self.m_staticText361, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinWait.SetSizer( bSizer291 )
      self.BitcoinWait.Layout()
      bSizer291.Fit( self.BitcoinWait )
      bSizer28.Add( self.BitcoinWait, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinStep1 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep1.Hide()
      
      bSizer29 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText36 = wx.StaticText( self.BitcoinStep1, wx.ID_ANY, u"Get the customer to scan QR code on screen", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText36.Wrap( -1 )
      self.m_staticText36.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_staticText36, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button12 = wx.Button( self.BitcoinStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button12.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_button12, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep1.SetSizer( bSizer29 )
      self.BitcoinStep1.Layout()
      bSizer29.Fit( self.BitcoinStep1 )
      bSizer28.Add( self.BitcoinStep1, 1, wx.EXPAND, 5 )
      
      self.BitcoinStep2 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep2.Hide()
      
      bSizer293 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText363 = wx.StaticText( self.BitcoinStep2, wx.ID_ANY, u"Waiting for payment to arive", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText363.Wrap( -1 )
      self.m_staticText363.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_staticText363, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button17 = wx.Button( self.BitcoinStep2, wx.ID_ANY, u"Cancel Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button17.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_button17, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep2.SetSizer( bSizer293 )
      self.BitcoinStep2.Layout()
      bSizer293.Fit( self.BitcoinStep2 )
      bSizer28.Add( self.BitcoinStep2, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinError = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinError.Hide()
      
      bSizer292 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText362 = wx.StaticText( self.BitcoinError, wx.ID_ANY, u"The payment server is currently unavailable", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText362.Wrap( -1 )
      self.m_staticText362.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_staticText362, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button121 = wx.Button( self.BitcoinError, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button121.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_button121, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinError.SetSizer( bSizer292 )
      self.BitcoinError.Layout()
      bSizer292.Fit( self.BitcoinError )
      bSizer28.Add( self.BitcoinError, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.BitcoinPayment.SetSizer( bSizer28 )
      self.BitcoinPayment.Layout()
      bSizer28.Fit( self.BitcoinPayment )
      bSizer17.Add( self.BitcoinPayment, 1, wx.EXPAND, 5 )
      
      self.FinalStep = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.FinalStep.Hide()
      
      bSizer26 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText34 = wx.StaticText( self.FinalStep, wx.ID_ANY, u"Payment Successful", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText34.Wrap( -1 )
      self.m_staticText34.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_staticText34, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button11 = wx.Button( self.FinalStep, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_button11, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.FinalStep.SetSizer( bSizer26 )
      self.FinalStep.Layout()
      bSizer26.Fit( self.FinalStep )
      bSizer17.Add( self.FinalStep, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.SetSizer( bSizer17 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button7.Bind( wx.EVT_BUTTON, self.CashStep1Done )
      self.m_button71.Bind( wx.EVT_BUTTON, self.CashStep2Done )
      self.m_button10.Bind( wx.EVT_BUTTON, self.CardDone )
      self.m_button12.Bind( wx.EVT_BUTTON, self.BitcoinStep1Done )
      self.m_button17.Bind( wx.EVT_BUTTON, self.BitcoinErrorDome )
      self.m_button121.Bind( wx.EVT_BUTTON, self.BitcoinErrorDone )
      self.m_button11.Bind( wx.EVT_BUTTON, self.FinalDone )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def CashStep1Done( self, event ):
      event.Skip()
   
   def CashStep2Done( self, event ):
      event.Skip()
   
   def CardDone( self, event ):
      event.Skip()
   
   def BitcoinStep1Done( self, event ):
      event.Skip()
   
   def BitcoinErrorDome( self, event ):
      event.Skip()
   
   def BitcoinErrorDone( self, event ):
      event.Skip()
   
   def FinalDone( self, event ):
      event.Skip()
   

# -*- coding: utf-8 -*- 

###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc

###########################################################################
## Class MainFrame
###########################################################################

class MainFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,800 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHintsSz( wx.Size( 1200,800 ), wx.Size( 1200,800 ) )
      self.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer9 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer1 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer5 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer11 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_bitmap1 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.Size( -1,-1 ), 0 )
      bSizer11.Add( self.m_bitmap1, 0, wx.ALL, 5 )
      
      self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"Checkout System", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1.Wrap( -1 )
      self.m_staticText1.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText1.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer11.Add( self.m_staticText1, 0, wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer11, 0, wx.EXPAND, 5 )
      
      bSizer6 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText7 = wx.StaticText( self, wx.ID_ANY, u"Items", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText7.Wrap( -1 )
      self.m_staticText7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer6.Add( self.m_staticText7, 0, wx.ALL, 5 )
      
      gbSizer1 = wx.GridBagSizer( 0, 0 )
      gbSizer1.SetFlexibleDirection( wx.BOTH )
      gbSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_button2 = wx.Button( self, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button2.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button2, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      self.m_button3 = wx.Button( self, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button3.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button3, wx.GBPosition( 0, 1 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      bSizer7 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Other", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText5.Wrap( -1 )
      self.m_staticText5.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText5.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText5, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_name = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_name, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_staticText6 = wx.StaticText( self, wx.ID_ANY, u"Price", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText6.Wrap( -1 )
      self.m_staticText6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText6.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText6, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_price = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_price, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_button6 = wx.Button( self, wx.ID_ANY, u"Add", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer7.Add( self.m_button6, 0, wx.ALL, 5 )
      
      
      gbSizer1.Add( bSizer7, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 2 ), 0, 5 )
      
      
      bSizer6.Add( gbSizer1, 0, wx.EXPAND, 5 )
      
      self.IPhoneOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      gbSizer2 = wx.GridBagSizer( 0, 0 )
      gbSizer2.SetFlexibleDirection( wx.BOTH )
      gbSizer2.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText9 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText9.Wrap( -1 )
      self.m_staticText9.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer2.Add( self.m_staticText9, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      IPhoneButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText111 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText111.Wrap( -1 )
      self.m_staticText111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      IPhoneButtons.Add( self.m_staticText111, 0, wx.ALL, 5 )
      
      
      gbSizer2.Add( IPhoneButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.IPhoneOptions.SetSizer( gbSizer2 )
      self.IPhoneOptions.Layout()
      gbSizer2.Fit( self.IPhoneOptions )
      bSizer6.Add( self.IPhoneOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.PCOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.PCOptions.Hide()
      
      gbSizer3 = wx.GridBagSizer( 0, 0 )
      gbSizer3.SetFlexibleDirection( wx.BOTH )
      gbSizer3.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText91 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText91.Wrap( -1 )
      self.m_staticText91.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer3.Add( self.m_staticText91, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      PCButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText11 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText11.Wrap( -1 )
      self.m_staticText11.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      PCButtons.Add( self.m_staticText11, 0, wx.ALL, 5 )
      
      
      gbSizer3.Add( PCButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.PCOptions.SetSizer( gbSizer3 )
      self.PCOptions.Layout()
      gbSizer3.Fit( self.PCOptions )
      bSizer6.Add( self.PCOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer6, 1, wx.EXPAND, 5 )
      
      bSizer12 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText8 = wx.StaticText( self, wx.ID_ANY, u"Discounts", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText8.Wrap( -1 )
      self.m_staticText8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer12.Add( self.m_staticText8, 0, wx.ALL, 5 )
      
      DiscountButtons = wx.GridSizer( 0, 3, 0, 0 )
      
      self.m_staticText1111 = wx.StaticText( self, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1111.Wrap( -1 )
      self.m_staticText1111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      DiscountButtons.Add( self.m_staticText1111, 0, wx.ALL, 5 )
      
      
      bSizer12.Add( DiscountButtons, 1, wx.EXPAND, 5 )
      
      
      bSizer5.Add( bSizer12, 0, wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer5, 1, wx.EXPAND, 5 )
      
      bSizer2 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer3 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText2.Wrap( -1 )
      self.m_staticText2.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText2.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText2, 0, wx.ALL, 5 )
      
      self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText4.Wrap( -1 )
      self.m_staticText4.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText4.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText4, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.total.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_button111 = wx.Button( self, wx.ID_ANY, u"Clear", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button111.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer3.Add( self.m_button111, 0, wx.LEFT, 5 )
      
      
      bSizer2.Add( bSizer3, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_SINGLE_SEL )
      self.items.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer2.Add( self.items, 1, wx.ALL|wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer2, 1, wx.EXPAND, 5 )
      
      
      bSizer9.Add( bSizer1, 1, wx.EXPAND, 5 )
      
      bSizer33 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_button7 = wx.Button( self, wx.ID_ANY, u"Cash", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button7, 0, wx.ALL, 5 )
      
      self.m_button8 = wx.Button( self, wx.ID_ANY, u"Card", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button8, 0, wx.ALL, 5 )
      
      self.m_button11 = wx.Button( self, wx.ID_ANY, u"Bitcoin", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button11, 0, wx.ALL, 5 )
      
      self.m_staticText40 = wx.StaticText( self, wx.ID_ANY, u"Ticket ID (if applicable):", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText40.Wrap( -1 )
      self.m_staticText40.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_staticText40, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.ticketID = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ticketID.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer33.Add( self.ticketID, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      
      bSizer9.Add( bSizer33, 0, wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer9 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button2.Bind( wx.EVT_BUTTON, self.ShowIPhoneOptions )
      self.m_button3.Bind( wx.EVT_BUTTON, self.ShowPCOptions )
      self.m_button6.Bind( wx.EVT_BUTTON, self.AddOther )
      self.m_button111.Bind( wx.EVT_BUTTON, self.ClearItems )
      self.m_button7.Bind( wx.EVT_BUTTON, self.PayCash )
      self.m_button8.Bind( wx.EVT_BUTTON, self.PayCard )
      self.m_button11.Bind( wx.EVT_BUTTON, self.PayBitcoin )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def ShowIPhoneOptions( self, event ):
      event.Skip()
   
   def ShowPCOptions( self, event ):
      event.Skip()
   
   def AddOther( self, event ):
      event.Skip()
   
   def ClearItems( self, event ):
      event.Skip()
   
   def PayCash( self, event ):
      event.Skip()
   
   def PayCard( self, event ):
      event.Skip()
   
   def PayBitcoin( self, event ):
      event.Skip()
   

###########################################################################
## Class CustomerFrame
###########################################################################

class CustomerFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1000,600 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHintsSz( wx.Size( -1,-1 ), wx.Size( -1,-1 ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer14 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_bitmap3 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer14.Add( self.m_bitmap3, 0, wx.ALL|wx.EXPAND, 5 )
      
      bSizer16 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer10 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText16 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText16.Wrap( -1 )
      self.m_staticText16.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText16, 0, wx.ALL, 5 )
      
      self.m_staticText17 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText17.Wrap( -1 )
      self.m_staticText17.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText17, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer10, 1, wx.EXPAND, 5 )
      
      bSizer102 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText162 = wx.StaticText( self, wx.ID_ANY, u"Paid:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText162.Wrap( -1 )
      self.m_staticText162.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText162, 0, wx.ALL, 5 )
      
      self.m_staticText172 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText172.Wrap( -1 )
      self.m_staticText172.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText172, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.paid = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.paid.Wrap( -1 )
      self.paid.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.paid, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer102, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer16, 0, wx.EXPAND, 5 )
      
      bSizer15 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer101 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText161 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText161.Wrap( -1 )
      self.m_staticText161.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer101.Add( self.m_staticText161, 0, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer101.Add( self.method, 0, wx.ALL, 5 )
      
      
      bSizer15.Add( bSizer101, 1, wx.EXPAND, 5 )
      
      bSizer1021 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText1621 = wx.StaticText( self, wx.ID_ANY, u"Change:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1621.Wrap( -1 )
      self.m_staticText1621.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1621, 0, wx.ALL, 5 )
      
      self.m_staticText1721 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1721.Wrap( -1 )
      self.m_staticText1721.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1721, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.change = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.change.Wrap( -1 )
      self.change.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.change, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer15.Add( bSizer1021, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer15, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_VRULES )
      self.items.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer14.Add( self.items, 1, wx.EXPAND, 5 )
      
      self.qrCode = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.qrCode.Hide()
      
      bSizer14.Add( self.qrCode, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer14 )
      self.Layout()
      
      self.Centre( wx.BOTH )
   
   def __del__( self ):
      pass
   

###########################################################################
## Class PaymentFrame
###########################################################################

class PaymentFrame ( wx.Dialog ):
   
   def __init__( self, parent ):
      wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,300 ), style = wx.STAY_ON_TOP )
      
      self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer17 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText25 = wx.StaticText( self, wx.ID_ANY, u"Taking Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText25.Wrap( -1 )
      self.m_staticText25.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer17.Add( self.m_staticText25, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      bSizer18 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText26 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText26.Wrap( -1 )
      self.m_staticText26.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer18.Add( self.m_staticText26, 1, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer18.Add( self.method, 1, wx.ALL, 5 )
      
      
      bSizer17.Add( bSizer18, 0, wx.EXPAND, 5 )
      
      self.CashPyment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashPyment.Hide()
      
      bSizer19 = wx.BoxSizer( wx.VERTICAL )
      
      self.CashStep1 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep1.Hide()
      
      bSizer20 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer21 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText29 = wx.StaticText( self.CashStep1, wx.ID_ANY, u"Enter ammount paid: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText29.Wrap( -1 )
      self.m_staticText29.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer21.Add( self.m_staticText29, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.ammountPaidCash = wx.TextCtrl( self.CashStep1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ammountPaidCash.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer21.Add( self.ammountPaidCash, 1, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer20.Add( bSizer21, 1, wx.EXPAND, 5 )
      
      self.m_button7 = wx.Button( self.CashStep1, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer20.Add( self.m_button7, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep1.SetSizer( bSizer20 )
      self.CashStep1.Layout()
      bSizer20.Fit( self.CashStep1 )
      bSizer19.Add( self.CashStep1, 1, wx.EXPAND, 5 )
      
      self.CashStep2 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep2.Hide()
      
      bSizer22 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer211 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText291 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"Please give back: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText291.Wrap( -1 )
      self.m_staticText291.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText291, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cashChange = wx.StaticText( self.CashStep2, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cashChange.Wrap( -1 )
      self.cashChange.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer211.Add( self.cashChange, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText33 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"in change", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText33.Wrap( -1 )
      self.m_staticText33.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText33, 0, wx.ALL, 5 )
      
      
      bSizer22.Add( bSizer211, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button71 = wx.Button( self.CashStep2, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button71.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer22.Add( self.m_button71, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep2.SetSizer( bSizer22 )
      self.CashStep2.Layout()
      bSizer22.Fit( self.CashStep2 )
      bSizer19.Add( self.CashStep2, 1, wx.EXPAND, 5 )
      
      
      self.CashPyment.SetSizer( bSizer19 )
      self.CashPyment.Layout()
      bSizer19.Fit( self.CashPyment )
      bSizer17.Add( self.CashPyment, 1, wx.EXPAND, 5 )
      
      self.CardPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardPayment.Hide()
      
      bSizer25 = wx.BoxSizer( wx.VERTICAL )
      
      self.CardStep1 = wx.Panel( self.CardPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardStep1.Hide()
      
      bSizer261 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer27 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText331 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"Please take £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText331.Wrap( -1 )
      self.m_staticText331.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText331, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cardDue = wx.StaticText( self.CardStep1, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cardDue.Wrap( -1 )
      self.cardDue.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer27.Add( self.cardDue, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText35 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"on the card machine", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText35.Wrap( -1 )
      self.m_staticText35.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText35, 0, wx.ALL, 5 )
      
      
      bSizer261.Add( bSizer27, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button10 = wx.Button( self.CardStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button10.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer261.Add( self.m_button10, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CardStep1.SetSizer( bSizer261 )
      self.CardStep1.Layout()
      bSizer261.Fit( self.CardStep1 )
      bSizer25.Add( self.CardStep1, 1, wx.EXPAND, 5 )
      
      
      self.CardPayment.SetSizer( bSizer25 )
      self.CardPayment.Layout()
      bSizer25.Fit( self.CardPayment )
      bSizer17.Add( self.CardPayment, 1, wx.EXPAND, 5 )
      
      self.BitcoinPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinPayment.Hide()
      
      bSizer28 = wx.BoxSizer( wx.VERTICAL )
      
      self.BitcoinWait = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinWait.Hide()
      
      bSizer291 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText361 = wx.StaticText( self.BitcoinWait, wx.ID_ANY, u"Please wait while the payment details are generated", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText361.Wrap( -1 )
      self.m_staticText361.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer291.Add( self.m_staticText361, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinWait.SetSizer( bSizer291 )
      self.BitcoinWait.Layout()
      bSizer291.Fit( self.BitcoinWait )
      bSizer28.Add( self.BitcoinWait, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinStep1 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep1.Hide()
      
      bSizer29 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText36 = wx.StaticText( self.BitcoinStep1, wx.ID_ANY, u"Get the customer to scan QR code on screen", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText36.Wrap( -1 )
      self.m_staticText36.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_staticText36, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button12 = wx.Button( self.BitcoinStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button12.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_button12, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep1.SetSizer( bSizer29 )
      self.BitcoinStep1.Layout()
      bSizer29.Fit( self.BitcoinStep1 )
      bSizer28.Add( self.BitcoinStep1, 1, wx.EXPAND, 5 )
      
      self.BitcoinStep2 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep2.Hide()
      
      bSizer293 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText363 = wx.StaticText( self.BitcoinStep2, wx.ID_ANY, u"Waiting for payment to arive", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText363.Wrap( -1 )
      self.m_staticText363.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_staticText363, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button17 = wx.Button( self.BitcoinStep2, wx.ID_ANY, u"Cancel Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button17.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_button17, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep2.SetSizer( bSizer293 )
      self.BitcoinStep2.Layout()
      bSizer293.Fit( self.BitcoinStep2 )
      bSizer28.Add( self.BitcoinStep2, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinError = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinError.Hide()
      
      bSizer292 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText362 = wx.StaticText( self.BitcoinError, wx.ID_ANY, u"The payment server is currently unavailable", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText362.Wrap( -1 )
      self.m_staticText362.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_staticText362, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button121 = wx.Button( self.BitcoinError, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button121.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_button121, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinError.SetSizer( bSizer292 )
      self.BitcoinError.Layout()
      bSizer292.Fit( self.BitcoinError )
      bSizer28.Add( self.BitcoinError, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.BitcoinPayment.SetSizer( bSizer28 )
      self.BitcoinPayment.Layout()
      bSizer28.Fit( self.BitcoinPayment )
      bSizer17.Add( self.BitcoinPayment, 1, wx.EXPAND, 5 )
      
      self.FinalStep = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.FinalStep.Hide()
      
      bSizer26 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText34 = wx.StaticText( self.FinalStep, wx.ID_ANY, u"Payment Successful", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText34.Wrap( -1 )
      self.m_staticText34.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_staticText34, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button11 = wx.Button( self.FinalStep, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_button11, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.FinalStep.SetSizer( bSizer26 )
      self.FinalStep.Layout()
      bSizer26.Fit( self.FinalStep )
      bSizer17.Add( self.FinalStep, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.SetSizer( bSizer17 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button7.Bind( wx.EVT_BUTTON, self.CashStep1Done )
      self.m_button71.Bind( wx.EVT_BUTTON, self.CashStep2Done )
      self.m_button10.Bind( wx.EVT_BUTTON, self.CardDone )
      self.m_button12.Bind( wx.EVT_BUTTON, self.BitcoinStep1Done )
      self.m_button17.Bind( wx.EVT_BUTTON, self.BitcoinErrorDome )
      self.m_button121.Bind( wx.EVT_BUTTON, self.BitcoinErrorDone )
      self.m_button11.Bind( wx.EVT_BUTTON, self.FinalDone )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def CashStep1Done( self, event ):
      event.Skip()
   
   def CashStep2Done( self, event ):
      event.Skip()
   
   def CardDone( self, event ):
      event.Skip()
   
   def BitcoinStep1Done( self, event ):
      event.Skip()
   
   def BitcoinErrorDome( self, event ):
      event.Skip()
   
   def BitcoinErrorDone( self, event ):
      event.Skip()
   
   def FinalDone( self, event ):
      event.Skip()
   

# -*- coding: utf-8 -*- 

###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc

###########################################################################
## Class MainFrame
###########################################################################

class MainFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,800 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHints( wx.Size( 1200,800 ), wx.Size( 1200,800 ) )
      self.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer9 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer1 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer5 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer11 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_bitmap1 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.Size( -1,-1 ), 0 )
      bSizer11.Add( self.m_bitmap1, 0, wx.ALL, 5 )
      
      self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"Checkout System", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1.Wrap( -1 )
      self.m_staticText1.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText1.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer11.Add( self.m_staticText1, 0, wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer11, 0, wx.EXPAND, 5 )
      
      bSizer6 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText7 = wx.StaticText( self, wx.ID_ANY, u"Items", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText7.Wrap( -1 )
      self.m_staticText7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer6.Add( self.m_staticText7, 0, wx.ALL, 5 )
      
      gbSizer1 = wx.GridBagSizer( 0, 0 )
      gbSizer1.SetFlexibleDirection( wx.BOTH )
      gbSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_button2 = wx.Button( self, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button2.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button2, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      self.m_button3 = wx.Button( self, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button3.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button3, wx.GBPosition( 0, 1 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      bSizer7 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Other", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText5.Wrap( -1 )
      self.m_staticText5.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText5.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText5, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_name = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_name, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_staticText6 = wx.StaticText( self, wx.ID_ANY, u"Price", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText6.Wrap( -1 )
      self.m_staticText6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText6.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText6, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_price = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_price, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_button6 = wx.Button( self, wx.ID_ANY, u"Add", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer7.Add( self.m_button6, 0, wx.ALL, 5 )
      
      
      gbSizer1.Add( bSizer7, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 2 ), 0, 5 )
      
      
      bSizer6.Add( gbSizer1, 0, wx.EXPAND, 5 )
      
      self.IPhoneOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      gbSizer2 = wx.GridBagSizer( 0, 0 )
      gbSizer2.SetFlexibleDirection( wx.BOTH )
      gbSizer2.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText9 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText9.Wrap( -1 )
      self.m_staticText9.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer2.Add( self.m_staticText9, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      IPhoneButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText111 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText111.Wrap( -1 )
      self.m_staticText111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      IPhoneButtons.Add( self.m_staticText111, 0, wx.ALL, 5 )
      
      
      gbSizer2.Add( IPhoneButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.IPhoneOptions.SetSizer( gbSizer2 )
      self.IPhoneOptions.Layout()
      gbSizer2.Fit( self.IPhoneOptions )
      bSizer6.Add( self.IPhoneOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.PCOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.PCOptions.Hide()
      
      gbSizer3 = wx.GridBagSizer( 0, 0 )
      gbSizer3.SetFlexibleDirection( wx.BOTH )
      gbSizer3.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText91 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText91.Wrap( -1 )
      self.m_staticText91.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer3.Add( self.m_staticText91, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      PCButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText11 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText11.Wrap( -1 )
      self.m_staticText11.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      PCButtons.Add( self.m_staticText11, 0, wx.ALL, 5 )
      
      
      gbSizer3.Add( PCButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.PCOptions.SetSizer( gbSizer3 )
      self.PCOptions.Layout()
      gbSizer3.Fit( self.PCOptions )
      bSizer6.Add( self.PCOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer6, 1, wx.EXPAND, 5 )
      
      bSizer12 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText8 = wx.StaticText( self, wx.ID_ANY, u"Discounts", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText8.Wrap( -1 )
      self.m_staticText8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer12.Add( self.m_staticText8, 0, wx.ALL, 5 )
      
      DiscountButtons = wx.GridSizer( 0, 3, 0, 0 )
      
      self.m_staticText1111 = wx.StaticText( self, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1111.Wrap( -1 )
      self.m_staticText1111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      DiscountButtons.Add( self.m_staticText1111, 0, wx.ALL, 5 )
      
      
      bSizer12.Add( DiscountButtons, 1, wx.EXPAND, 5 )
      
      
      bSizer5.Add( bSizer12, 0, wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer5, 1, wx.EXPAND, 5 )
      
      bSizer2 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer3 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText2.Wrap( -1 )
      self.m_staticText2.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText2.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText2, 0, wx.ALL, 5 )
      
      self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText4.Wrap( -1 )
      self.m_staticText4.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText4.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText4, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.total.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_button111 = wx.Button( self, wx.ID_ANY, u"Clear", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button111.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer3.Add( self.m_button111, 0, wx.LEFT, 5 )
      
      
      bSizer2.Add( bSizer3, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_SINGLE_SEL )
      self.items.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer2.Add( self.items, 1, wx.ALL|wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer2, 1, wx.EXPAND, 5 )
      
      
      bSizer9.Add( bSizer1, 1, wx.EXPAND, 5 )
      
      bSizer33 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_button7 = wx.Button( self, wx.ID_ANY, u"Cash", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button7, 0, wx.ALL, 5 )
      
      self.m_button8 = wx.Button( self, wx.ID_ANY, u"Card", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button8, 0, wx.ALL, 5 )
      
      self.m_button11 = wx.Button( self, wx.ID_ANY, u"Bitcoin", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button11, 0, wx.ALL, 5 )
      
      self.m_staticText40 = wx.StaticText( self, wx.ID_ANY, u"Ticket ID (if applicable):", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText40.Wrap( -1 )
      self.m_staticText40.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_staticText40, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.ticketID = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ticketID.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer33.Add( self.ticketID, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      
      bSizer9.Add( bSizer33, 0, wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer9 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button2.Bind( wx.EVT_BUTTON, self.ShowIPhoneOptions )
      self.m_button3.Bind( wx.EVT_BUTTON, self.ShowPCOptions )
      self.m_button6.Bind( wx.EVT_BUTTON, self.AddOther )
      self.m_button111.Bind( wx.EVT_BUTTON, self.ClearItems )
      self.m_button7.Bind( wx.EVT_BUTTON, self.PayCash )
      self.m_button8.Bind( wx.EVT_BUTTON, self.PayCard )
      self.m_button11.Bind( wx.EVT_BUTTON, self.PayBitcoin )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def ShowIPhoneOptions( self, event ):
      event.Skip()
   
   def ShowPCOptions( self, event ):
      event.Skip()
   
   def AddOther( self, event ):
      event.Skip()
   
   def ClearItems( self, event ):
      event.Skip()
   
   def PayCash( self, event ):
      event.Skip()
   
   def PayCard( self, event ):
      event.Skip()
   
   def PayBitcoin( self, event ):
      event.Skip()
   

###########################################################################
## Class CustomerFrame
###########################################################################

class CustomerFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1000,600 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHints( wx.Size( -1,-1 ), wx.Size( -1,-1 ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer14 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_bitmap3 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer14.Add( self.m_bitmap3, 0, wx.ALL|wx.EXPAND, 5 )
      
      bSizer16 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer10 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText16 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText16.Wrap( -1 )
      self.m_staticText16.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText16, 0, wx.ALL, 5 )
      
      self.m_staticText17 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText17.Wrap( -1 )
      self.m_staticText17.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText17, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer10, 1, wx.EXPAND, 5 )
      
      bSizer102 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText162 = wx.StaticText( self, wx.ID_ANY, u"Paid:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText162.Wrap( -1 )
      self.m_staticText162.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText162, 0, wx.ALL, 5 )
      
      self.m_staticText172 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText172.Wrap( -1 )
      self.m_staticText172.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText172, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.paid = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.paid.Wrap( -1 )
      self.paid.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.paid, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer102, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer16, 0, wx.EXPAND, 5 )
      
      bSizer15 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer101 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText161 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText161.Wrap( -1 )
      self.m_staticText161.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer101.Add( self.m_staticText161, 0, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer101.Add( self.method, 0, wx.ALL, 5 )
      
      
      bSizer15.Add( bSizer101, 1, wx.EXPAND, 5 )
      
      bSizer1021 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText1621 = wx.StaticText( self, wx.ID_ANY, u"Change:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1621.Wrap( -1 )
      self.m_staticText1621.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1621, 0, wx.ALL, 5 )
      
      self.m_staticText1721 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1721.Wrap( -1 )
      self.m_staticText1721.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1721, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.change = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.change.Wrap( -1 )
      self.change.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.change, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer15.Add( bSizer1021, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer15, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_VRULES )
      self.items.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer14.Add( self.items, 1, wx.EXPAND, 5 )
      
      self.qrCode = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.qrCode.Hide()
      
      bSizer14.Add( self.qrCode, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer14 )
      self.Layout()
      
      self.Centre( wx.BOTH )
   
   def __del__( self ):
      pass
   

###########################################################################
## Class PaymentFrame
###########################################################################

class PaymentFrame ( wx.Dialog ):
   
   def __init__( self, parent ):
      wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,300 ), style = wx.STAY_ON_TOP )
      
      self.SetSizeHints( wx.DefaultSize, wx.DefaultSize )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer17 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText25 = wx.StaticText( self, wx.ID_ANY, u"Taking Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText25.Wrap( -1 )
      self.m_staticText25.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer17.Add( self.m_staticText25, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      bSizer18 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText26 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText26.Wrap( -1 )
      self.m_staticText26.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer18.Add( self.m_staticText26, 1, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer18.Add( self.method, 1, wx.ALL, 5 )
      
      
      bSizer17.Add( bSizer18, 0, wx.EXPAND, 5 )
      
      self.CashPyment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashPyment.Hide()
      
      bSizer19 = wx.BoxSizer( wx.VERTICAL )
      
      self.CashStep1 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep1.Hide()
      
      bSizer20 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer21 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText29 = wx.StaticText( self.CashStep1, wx.ID_ANY, u"Enter ammount paid: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText29.Wrap( -1 )
      self.m_staticText29.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer21.Add( self.m_staticText29, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.ammountPaidCash = wx.TextCtrl( self.CashStep1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ammountPaidCash.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer21.Add( self.ammountPaidCash, 1, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer20.Add( bSizer21, 1, wx.EXPAND, 5 )
      
      self.m_button7 = wx.Button( self.CashStep1, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer20.Add( self.m_button7, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep1.SetSizer( bSizer20 )
      self.CashStep1.Layout()
      bSizer20.Fit( self.CashStep1 )
      bSizer19.Add( self.CashStep1, 1, wx.EXPAND, 5 )
      
      self.CashStep2 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep2.Hide()
      
      bSizer22 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer211 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText291 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"Please give back: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText291.Wrap( -1 )
      self.m_staticText291.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText291, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cashChange = wx.StaticText( self.CashStep2, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cashChange.Wrap( -1 )
      self.cashChange.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer211.Add( self.cashChange, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText33 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"in change", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText33.Wrap( -1 )
      self.m_staticText33.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText33, 0, wx.ALL, 5 )
      
      
      bSizer22.Add( bSizer211, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button71 = wx.Button( self.CashStep2, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button71.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer22.Add( self.m_button71, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep2.SetSizer( bSizer22 )
      self.CashStep2.Layout()
      bSizer22.Fit( self.CashStep2 )
      bSizer19.Add( self.CashStep2, 1, wx.EXPAND, 5 )
      
      
      self.CashPyment.SetSizer( bSizer19 )
      self.CashPyment.Layout()
      bSizer19.Fit( self.CashPyment )
      bSizer17.Add( self.CashPyment, 1, wx.EXPAND, 5 )
      
      self.CardPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardPayment.Hide()
      
      bSizer25 = wx.BoxSizer( wx.VERTICAL )
      
      self.CardStep1 = wx.Panel( self.CardPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardStep1.Hide()
      
      bSizer261 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer27 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText331 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"Please take £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText331.Wrap( -1 )
      self.m_staticText331.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText331, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cardDue = wx.StaticText( self.CardStep1, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cardDue.Wrap( -1 )
      self.cardDue.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer27.Add( self.cardDue, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText35 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"on the card machine", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText35.Wrap( -1 )
      self.m_staticText35.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText35, 0, wx.ALL, 5 )
      
      
      bSizer261.Add( bSizer27, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button10 = wx.Button( self.CardStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button10.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer261.Add( self.m_button10, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CardStep1.SetSizer( bSizer261 )
      self.CardStep1.Layout()
      bSizer261.Fit( self.CardStep1 )
      bSizer25.Add( self.CardStep1, 1, wx.EXPAND, 5 )
      
      
      self.CardPayment.SetSizer( bSizer25 )
      self.CardPayment.Layout()
      bSizer25.Fit( self.CardPayment )
      bSizer17.Add( self.CardPayment, 1, wx.EXPAND, 5 )
      
      self.BitcoinPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinPayment.Hide()
      
      bSizer28 = wx.BoxSizer( wx.VERTICAL )
      
      self.BitcoinWait = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinWait.Hide()
      
      bSizer291 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText361 = wx.StaticText( self.BitcoinWait, wx.ID_ANY, u"Please wait while the payment details are generated", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText361.Wrap( -1 )
      self.m_staticText361.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer291.Add( self.m_staticText361, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinWait.SetSizer( bSizer291 )
      self.BitcoinWait.Layout()
      bSizer291.Fit( self.BitcoinWait )
      bSizer28.Add( self.BitcoinWait, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinStep1 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep1.Hide()
      
      bSizer29 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText36 = wx.StaticText( self.BitcoinStep1, wx.ID_ANY, u"Get the customer to scan QR code on screen", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText36.Wrap( -1 )
      self.m_staticText36.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_staticText36, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button12 = wx.Button( self.BitcoinStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button12.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_button12, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep1.SetSizer( bSizer29 )
      self.BitcoinStep1.Layout()
      bSizer29.Fit( self.BitcoinStep1 )
      bSizer28.Add( self.BitcoinStep1, 1, wx.EXPAND, 5 )
      
      self.BitcoinStep2 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep2.Hide()
      
      bSizer293 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText363 = wx.StaticText( self.BitcoinStep2, wx.ID_ANY, u"Waiting for payment to arive", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText363.Wrap( -1 )
      self.m_staticText363.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_staticText363, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button17 = wx.Button( self.BitcoinStep2, wx.ID_ANY, u"Cancel Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button17.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_button17, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep2.SetSizer( bSizer293 )
      self.BitcoinStep2.Layout()
      bSizer293.Fit( self.BitcoinStep2 )
      bSizer28.Add( self.BitcoinStep2, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinError = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinError.Hide()
      
      bSizer292 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText362 = wx.StaticText( self.BitcoinError, wx.ID_ANY, u"The payment server is currently unavailable", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText362.Wrap( -1 )
      self.m_staticText362.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_staticText362, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button121 = wx.Button( self.BitcoinError, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button121.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_button121, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinError.SetSizer( bSizer292 )
      self.BitcoinError.Layout()
      bSizer292.Fit( self.BitcoinError )
      bSizer28.Add( self.BitcoinError, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.BitcoinPayment.SetSizer( bSizer28 )
      self.BitcoinPayment.Layout()
      bSizer28.Fit( self.BitcoinPayment )
      bSizer17.Add( self.BitcoinPayment, 1, wx.EXPAND, 5 )
      
      self.FinalStep = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.FinalStep.Hide()
      
      bSizer26 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText34 = wx.StaticText( self.FinalStep, wx.ID_ANY, u"Payment Successful", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText34.Wrap( -1 )
      self.m_staticText34.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_staticText34, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button11 = wx.Button( self.FinalStep, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_button11, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.FinalStep.SetSizer( bSizer26 )
      self.FinalStep.Layout()
      bSizer26.Fit( self.FinalStep )
      bSizer17.Add( self.FinalStep, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.SetSizer( bSizer17 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button7.Bind( wx.EVT_BUTTON, self.CashStep1Done )
      self.m_button71.Bind( wx.EVT_BUTTON, self.CashStep2Done )
      self.m_button10.Bind( wx.EVT_BUTTON, self.CardDone )
      self.m_button12.Bind( wx.EVT_BUTTON, self.BitcoinStep1Done )
      self.m_button17.Bind( wx.EVT_BUTTON, self.BitcoinErrorDome )
      self.m_button121.Bind( wx.EVT_BUTTON, self.BitcoinErrorDone )
      self.m_button11.Bind( wx.EVT_BUTTON, self.FinalDone )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def CashStep1Done( self, event ):
      event.Skip()
   
   def CashStep2Done( self, event ):
      event.Skip()
   
   def CardDone( self, event ):
      event.Skip()
   
   def BitcoinStep1Done( self, event ):
      event.Skip()
   
   def BitcoinErrorDome( self, event ):
      event.Skip()
   
   def BitcoinErrorDone( self, event ):
      event.Skip()
   
   def FinalDone( self, event ):
      event.Skip()
   

# -*- coding: utf-8 -*- 

###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc

###########################################################################
## Class MainFrame
###########################################################################

class MainFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,800 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHints( wx.Size( 1200,800 ), wx.Size( 1200,800 ) )
      self.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer9 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer1 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer5 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer11 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_bitmap1 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.Size( -1,-1 ), 0 )
      bSizer11.Add( self.m_bitmap1, 0, wx.ALL, 5 )
      
      self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"Checkout System", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1.Wrap( -1 )
      self.m_staticText1.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText1.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer11.Add( self.m_staticText1, 0, wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer11, 0, wx.EXPAND, 5 )
      
      bSizer6 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText7 = wx.StaticText( self, wx.ID_ANY, u"Items", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText7.Wrap( -1 )
      self.m_staticText7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer6.Add( self.m_staticText7, 0, wx.ALL, 5 )
      
      gbSizer1 = wx.GridBagSizer( 0, 0 )
      gbSizer1.SetFlexibleDirection( wx.BOTH )
      gbSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_button2 = wx.Button( self, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button2.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button2, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      self.m_button3 = wx.Button( self, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button3.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button3, wx.GBPosition( 0, 1 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      bSizer7 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Other", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText5.Wrap( -1 )
      self.m_staticText5.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText5.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText5, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_name = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_name, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_staticText6 = wx.StaticText( self, wx.ID_ANY, u"Price", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText6.Wrap( -1 )
      self.m_staticText6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText6.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText6, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_price = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_price, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_button6 = wx.Button( self, wx.ID_ANY, u"Add", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer7.Add( self.m_button6, 0, wx.ALL, 5 )
      
      
      gbSizer1.Add( bSizer7, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 2 ), 0, 5 )
      
      
      bSizer6.Add( gbSizer1, 0, wx.EXPAND, 5 )
      
      self.IPhoneOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      gbSizer2 = wx.GridBagSizer( 0, 0 )
      gbSizer2.SetFlexibleDirection( wx.BOTH )
      gbSizer2.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText9 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText9.Wrap( -1 )
      self.m_staticText9.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer2.Add( self.m_staticText9, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      IPhoneButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText111 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText111.Wrap( -1 )
      self.m_staticText111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      IPhoneButtons.Add( self.m_staticText111, 0, wx.ALL, 5 )
      
      
      gbSizer2.Add( IPhoneButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.IPhoneOptions.SetSizer( gbSizer2 )
      self.IPhoneOptions.Layout()
      gbSizer2.Fit( self.IPhoneOptions )
      bSizer6.Add( self.IPhoneOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.PCOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.PCOptions.Hide()
      
      gbSizer3 = wx.GridBagSizer( 0, 0 )
      gbSizer3.SetFlexibleDirection( wx.BOTH )
      gbSizer3.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText91 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText91.Wrap( -1 )
      self.m_staticText91.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer3.Add( self.m_staticText91, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      PCButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText11 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText11.Wrap( -1 )
      self.m_staticText11.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      PCButtons.Add( self.m_staticText11, 0, wx.ALL, 5 )
      
      
      gbSizer3.Add( PCButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.PCOptions.SetSizer( gbSizer3 )
      self.PCOptions.Layout()
      gbSizer3.Fit( self.PCOptions )
      bSizer6.Add( self.PCOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer6, 1, wx.EXPAND, 5 )
      
      bSizer12 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText8 = wx.StaticText( self, wx.ID_ANY, u"Discounts", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText8.Wrap( -1 )
      self.m_staticText8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer12.Add( self.m_staticText8, 0, wx.ALL, 5 )
      
      DiscountButtons = wx.GridSizer( 0, 3, 0, 0 )
      
      self.m_staticText1111 = wx.StaticText( self, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1111.Wrap( -1 )
      self.m_staticText1111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      DiscountButtons.Add( self.m_staticText1111, 0, wx.ALL, 5 )
      
      
      bSizer12.Add( DiscountButtons, 1, wx.EXPAND, 5 )
      
      
      bSizer5.Add( bSizer12, 0, wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer5, 1, wx.EXPAND, 5 )
      
      bSizer2 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer3 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText2.Wrap( -1 )
      self.m_staticText2.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText2.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText2, 0, wx.ALL, 5 )
      
      self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText4.Wrap( -1 )
      self.m_staticText4.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText4.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText4, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.total.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_button111 = wx.Button( self, wx.ID_ANY, u"Clear", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button111.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer3.Add( self.m_button111, 0, wx.LEFT, 5 )
      
      
      bSizer2.Add( bSizer3, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_SINGLE_SEL )
      self.items.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer2.Add( self.items, 1, wx.ALL|wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer2, 1, wx.EXPAND, 5 )
      
      
      bSizer9.Add( bSizer1, 1, wx.EXPAND, 5 )
      
      bSizer33 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_button7 = wx.Button( self, wx.ID_ANY, u"Cash", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button7, 0, wx.ALL, 5 )
      
      self.m_button8 = wx.Button( self, wx.ID_ANY, u"Card", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button8, 0, wx.ALL, 5 )
      
      self.m_button11 = wx.Button( self, wx.ID_ANY, u"Bitcoin", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button11, 0, wx.ALL, 5 )
      
      self.m_staticText40 = wx.StaticText( self, wx.ID_ANY, u"Ticket ID (if applicable):", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText40.Wrap( -1 )
      self.m_staticText40.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_staticText40, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.ticketID = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ticketID.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer33.Add( self.ticketID, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      
      bSizer9.Add( bSizer33, 0, wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer9 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button2.Bind( wx.EVT_BUTTON, self.ShowIPhoneOptions )
      self.m_button3.Bind( wx.EVT_BUTTON, self.ShowPCOptions )
      self.m_button6.Bind( wx.EVT_BUTTON, self.AddOther )
      self.m_button111.Bind( wx.EVT_BUTTON, self.ClearItems )
      self.m_button7.Bind( wx.EVT_BUTTON, self.PayCash )
      self.m_button8.Bind( wx.EVT_BUTTON, self.PayCard )
      self.m_button11.Bind( wx.EVT_BUTTON, self.PayBitcoin )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def ShowIPhoneOptions( self, event ):
      event.Skip()
   
   def ShowPCOptions( self, event ):
      event.Skip()
   
   def AddOther( self, event ):
      event.Skip()
   
   def ClearItems( self, event ):
      event.Skip()
   
   def PayCash( self, event ):
      event.Skip()
   
   def PayCard( self, event ):
      event.Skip()
   
   def PayBitcoin( self, event ):
      event.Skip()
   

###########################################################################
## Class CustomerFrame
###########################################################################

class CustomerFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1000,600 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHints( wx.Size( -1,-1 ), wx.Size( -1,-1 ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer14 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_bitmap3 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer14.Add( self.m_bitmap3, 0, wx.ALL|wx.EXPAND, 5 )
      
      bSizer16 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer10 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText16 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText16.Wrap( -1 )
      self.m_staticText16.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText16, 0, wx.ALL, 5 )
      
      self.m_staticText17 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText17.Wrap( -1 )
      self.m_staticText17.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText17, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer10, 1, wx.EXPAND, 5 )
      
      bSizer102 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText162 = wx.StaticText( self, wx.ID_ANY, u"Paid:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText162.Wrap( -1 )
      self.m_staticText162.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText162, 0, wx.ALL, 5 )
      
      self.m_staticText172 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText172.Wrap( -1 )
      self.m_staticText172.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText172, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.paid = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.paid.Wrap( -1 )
      self.paid.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.paid, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer102, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer16, 0, wx.EXPAND, 5 )
      
      bSizer15 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer101 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText161 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText161.Wrap( -1 )
      self.m_staticText161.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer101.Add( self.m_staticText161, 0, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer101.Add( self.method, 0, wx.ALL, 5 )
      
      
      bSizer15.Add( bSizer101, 1, wx.EXPAND, 5 )
      
      bSizer1021 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText1621 = wx.StaticText( self, wx.ID_ANY, u"Change:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1621.Wrap( -1 )
      self.m_staticText1621.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1621, 0, wx.ALL, 5 )
      
      self.m_staticText1721 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1721.Wrap( -1 )
      self.m_staticText1721.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1721, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.change = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.change.Wrap( -1 )
      self.change.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.change, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer15.Add( bSizer1021, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer15, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_VRULES )
      self.items.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer14.Add( self.items, 1, wx.EXPAND, 5 )
      
      self.qrCode = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.qrCode.Hide()
      
      bSizer14.Add( self.qrCode, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer14 )
      self.Layout()
      
      self.Centre( wx.BOTH )
   
   def __del__( self ):
      pass
   

###########################################################################
## Class PaymentFrame
###########################################################################

class PaymentFrame ( wx.Dialog ):
   
   def __init__( self, parent ):
      wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,300 ), style = wx.STAY_ON_TOP )
      
      self.SetSizeHints( wx.DefaultSize, wx.DefaultSize )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer17 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText25 = wx.StaticText( self, wx.ID_ANY, u"Taking Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText25.Wrap( -1 )
      self.m_staticText25.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer17.Add( self.m_staticText25, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      bSizer18 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText26 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText26.Wrap( -1 )
      self.m_staticText26.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer18.Add( self.m_staticText26, 1, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer18.Add( self.method, 1, wx.ALL, 5 )
      
      
      bSizer17.Add( bSizer18, 0, wx.EXPAND, 5 )
      
      self.CashPyment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashPyment.Hide()
      
      bSizer19 = wx.BoxSizer( wx.VERTICAL )
      
      self.CashStep1 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep1.Hide()
      
      bSizer20 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer21 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText29 = wx.StaticText( self.CashStep1, wx.ID_ANY, u"Enter ammount paid: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText29.Wrap( -1 )
      self.m_staticText29.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer21.Add( self.m_staticText29, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.ammountPaidCash = wx.TextCtrl( self.CashStep1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ammountPaidCash.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer21.Add( self.ammountPaidCash, 1, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer20.Add( bSizer21, 1, wx.EXPAND, 5 )
      
      self.m_button7 = wx.Button( self.CashStep1, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer20.Add( self.m_button7, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep1.SetSizer( bSizer20 )
      self.CashStep1.Layout()
      bSizer20.Fit( self.CashStep1 )
      bSizer19.Add( self.CashStep1, 1, wx.EXPAND, 5 )
      
      self.CashStep2 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep2.Hide()
      
      bSizer22 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer211 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText291 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"Please give back: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText291.Wrap( -1 )
      self.m_staticText291.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText291, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cashChange = wx.StaticText( self.CashStep2, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cashChange.Wrap( -1 )
      self.cashChange.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer211.Add( self.cashChange, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText33 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"in change", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText33.Wrap( -1 )
      self.m_staticText33.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText33, 0, wx.ALL, 5 )
      
      
      bSizer22.Add( bSizer211, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button71 = wx.Button( self.CashStep2, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button71.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer22.Add( self.m_button71, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep2.SetSizer( bSizer22 )
      self.CashStep2.Layout()
      bSizer22.Fit( self.CashStep2 )
      bSizer19.Add( self.CashStep2, 1, wx.EXPAND, 5 )
      
      
      self.CashPyment.SetSizer( bSizer19 )
      self.CashPyment.Layout()
      bSizer19.Fit( self.CashPyment )
      bSizer17.Add( self.CashPyment, 1, wx.EXPAND, 5 )
      
      self.CardPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardPayment.Hide()
      
      bSizer25 = wx.BoxSizer( wx.VERTICAL )
      
      self.CardStep1 = wx.Panel( self.CardPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardStep1.Hide()
      
      bSizer261 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer27 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText331 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"Please take £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText331.Wrap( -1 )
      self.m_staticText331.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText331, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cardDue = wx.StaticText( self.CardStep1, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cardDue.Wrap( -1 )
      self.cardDue.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer27.Add( self.cardDue, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText35 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"on the card machine", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText35.Wrap( -1 )
      self.m_staticText35.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText35, 0, wx.ALL, 5 )
      
      
      bSizer261.Add( bSizer27, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button10 = wx.Button( self.CardStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button10.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer261.Add( self.m_button10, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CardStep1.SetSizer( bSizer261 )
      self.CardStep1.Layout()
      bSizer261.Fit( self.CardStep1 )
      bSizer25.Add( self.CardStep1, 1, wx.EXPAND, 5 )
      
      
      self.CardPayment.SetSizer( bSizer25 )
      self.CardPayment.Layout()
      bSizer25.Fit( self.CardPayment )
      bSizer17.Add( self.CardPayment, 1, wx.EXPAND, 5 )
      
      self.BitcoinPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinPayment.Hide()
      
      bSizer28 = wx.BoxSizer( wx.VERTICAL )
      
      self.BitcoinWait = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinWait.Hide()
      
      bSizer291 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText361 = wx.StaticText( self.BitcoinWait, wx.ID_ANY, u"Please wait while the payment details are generated", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText361.Wrap( -1 )
      self.m_staticText361.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer291.Add( self.m_staticText361, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinWait.SetSizer( bSizer291 )
      self.BitcoinWait.Layout()
      bSizer291.Fit( self.BitcoinWait )
      bSizer28.Add( self.BitcoinWait, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinStep1 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep1.Hide()
      
      bSizer29 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText36 = wx.StaticText( self.BitcoinStep1, wx.ID_ANY, u"Get the customer to scan QR code on screen", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText36.Wrap( -1 )
      self.m_staticText36.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_staticText36, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button12 = wx.Button( self.BitcoinStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button12.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_button12, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep1.SetSizer( bSizer29 )
      self.BitcoinStep1.Layout()
      bSizer29.Fit( self.BitcoinStep1 )
      bSizer28.Add( self.BitcoinStep1, 1, wx.EXPAND, 5 )
      
      self.BitcoinStep2 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep2.Hide()
      
      bSizer293 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText363 = wx.StaticText( self.BitcoinStep2, wx.ID_ANY, u"Waiting for payment to arive", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText363.Wrap( -1 )
      self.m_staticText363.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_staticText363, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button17 = wx.Button( self.BitcoinStep2, wx.ID_ANY, u"Cancel Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button17.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_button17, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep2.SetSizer( bSizer293 )
      self.BitcoinStep2.Layout()
      bSizer293.Fit( self.BitcoinStep2 )
      bSizer28.Add( self.BitcoinStep2, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinError = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinError.Hide()
      
      bSizer292 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText362 = wx.StaticText( self.BitcoinError, wx.ID_ANY, u"The payment server is currently unavailable", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText362.Wrap( -1 )
      self.m_staticText362.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_staticText362, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button121 = wx.Button( self.BitcoinError, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button121.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_button121, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinError.SetSizer( bSizer292 )
      self.BitcoinError.Layout()
      bSizer292.Fit( self.BitcoinError )
      bSizer28.Add( self.BitcoinError, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.BitcoinPayment.SetSizer( bSizer28 )
      self.BitcoinPayment.Layout()
      bSizer28.Fit( self.BitcoinPayment )
      bSizer17.Add( self.BitcoinPayment, 1, wx.EXPAND, 5 )
      
      self.FinalStep = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.FinalStep.Hide()
      
      bSizer26 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText34 = wx.StaticText( self.FinalStep, wx.ID_ANY, u"Payment Successful", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText34.Wrap( -1 )
      self.m_staticText34.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_staticText34, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button11 = wx.Button( self.FinalStep, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_button11, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.FinalStep.SetSizer( bSizer26 )
      self.FinalStep.Layout()
      bSizer26.Fit( self.FinalStep )
      bSizer17.Add( self.FinalStep, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.SetSizer( bSizer17 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button7.Bind( wx.EVT_BUTTON, self.CashStep1Done )
      self.m_button71.Bind( wx.EVT_BUTTON, self.CashStep2Done )
      self.m_button10.Bind( wx.EVT_BUTTON, self.CardDone )
      self.m_button12.Bind( wx.EVT_BUTTON, self.BitcoinStep1Done )
      self.m_button17.Bind( wx.EVT_BUTTON, self.BitcoinErrorDome )
      self.m_button121.Bind( wx.EVT_BUTTON, self.BitcoinErrorDone )
      self.m_button11.Bind( wx.EVT_BUTTON, self.FinalDone )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def CashStep1Done( self, event ):
      event.Skip()
   
   def CashStep2Done( self, event ):
      event.Skip()
   
   def CardDone( self, event ):
      event.Skip()
   
   def BitcoinStep1Done( self, event ):
      event.Skip()
   
   def BitcoinErrorDome( self, event ):
      event.Skip()
   
   def BitcoinErrorDone( self, event ):
      event.Skip()
   
   def FinalDone( self, event ):
      event.Skip()
   

# -*- coding: utf-8 -*- 

###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc

###########################################################################
## Class MainFrame
###########################################################################

class MainFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,800 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHints( wx.Size( 1200,800 ), wx.Size( 1200,800 ) )
      self.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer9 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer1 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer5 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer11 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_bitmap1 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.Size( -1,-1 ), 0 )
      bSizer11.Add( self.m_bitmap1, 0, wx.ALL, 5 )
      
      self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"Checkout System", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1.Wrap( -1 )
      self.m_staticText1.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText1.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer11.Add( self.m_staticText1, 0, wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer11, 0, wx.EXPAND, 5 )
      
      bSizer6 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText7 = wx.StaticText( self, wx.ID_ANY, u"Items", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText7.Wrap( -1 )
      self.m_staticText7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer6.Add( self.m_staticText7, 0, wx.ALL, 5 )
      
      gbSizer1 = wx.GridBagSizer( 0, 0 )
      gbSizer1.SetFlexibleDirection( wx.BOTH )
      gbSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_button2 = wx.Button( self, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button2.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button2, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      self.m_button3 = wx.Button( self, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button3.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button3, wx.GBPosition( 0, 1 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      bSizer7 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Other", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText5.Wrap( -1 )
      self.m_staticText5.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText5.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText5, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_name = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_name, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_staticText6 = wx.StaticText( self, wx.ID_ANY, u"Price", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText6.Wrap( -1 )
      self.m_staticText6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText6.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText6, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_price = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_price, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_button6 = wx.Button( self, wx.ID_ANY, u"Add", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer7.Add( self.m_button6, 0, wx.ALL, 5 )
      
      
      gbSizer1.Add( bSizer7, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 2 ), 0, 5 )
      
      
      bSizer6.Add( gbSizer1, 0, wx.EXPAND, 5 )
      
      self.IPhoneOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      gbSizer2 = wx.GridBagSizer( 0, 0 )
      gbSizer2.SetFlexibleDirection( wx.BOTH )
      gbSizer2.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText9 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText9.Wrap( -1 )
      self.m_staticText9.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer2.Add( self.m_staticText9, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      IPhoneButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText111 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText111.Wrap( -1 )
      self.m_staticText111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      IPhoneButtons.Add( self.m_staticText111, 0, wx.ALL, 5 )
      
      
      gbSizer2.Add( IPhoneButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.IPhoneOptions.SetSizer( gbSizer2 )
      self.IPhoneOptions.Layout()
      gbSizer2.Fit( self.IPhoneOptions )
      bSizer6.Add( self.IPhoneOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.PCOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.PCOptions.Hide()
      
      gbSizer3 = wx.GridBagSizer( 0, 0 )
      gbSizer3.SetFlexibleDirection( wx.BOTH )
      gbSizer3.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText91 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText91.Wrap( -1 )
      self.m_staticText91.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer3.Add( self.m_staticText91, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      PCButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText11 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText11.Wrap( -1 )
      self.m_staticText11.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      PCButtons.Add( self.m_staticText11, 0, wx.ALL, 5 )
      
      
      gbSizer3.Add( PCButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.PCOptions.SetSizer( gbSizer3 )
      self.PCOptions.Layout()
      gbSizer3.Fit( self.PCOptions )
      bSizer6.Add( self.PCOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer6, 1, wx.EXPAND, 5 )
      
      bSizer12 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText8 = wx.StaticText( self, wx.ID_ANY, u"Discounts", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText8.Wrap( -1 )
      self.m_staticText8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer12.Add( self.m_staticText8, 0, wx.ALL, 5 )
      
      DiscountButtons = wx.GridSizer( 0, 3, 0, 0 )
      
      self.m_staticText1111 = wx.StaticText( self, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1111.Wrap( -1 )
      self.m_staticText1111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      DiscountButtons.Add( self.m_staticText1111, 0, wx.ALL, 5 )
      
      
      bSizer12.Add( DiscountButtons, 1, wx.EXPAND, 5 )
      
      
      bSizer5.Add( bSizer12, 0, wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer5, 1, wx.EXPAND, 5 )
      
      bSizer2 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer3 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText2.Wrap( -1 )
      self.m_staticText2.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText2.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText2, 0, wx.ALL, 5 )
      
      self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText4.Wrap( -1 )
      self.m_staticText4.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText4.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText4, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.total.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_button111 = wx.Button( self, wx.ID_ANY, u"Clear", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button111.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer3.Add( self.m_button111, 0, wx.LEFT, 5 )
      
      
      bSizer2.Add( bSizer3, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_SINGLE_SEL )
      self.items.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer2.Add( self.items, 1, wx.ALL|wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer2, 1, wx.EXPAND, 5 )
      
      
      bSizer9.Add( bSizer1, 1, wx.EXPAND, 5 )
      
      bSizer33 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_button7 = wx.Button( self, wx.ID_ANY, u"Cash", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button7, 0, wx.ALL, 5 )
      
      self.m_button8 = wx.Button( self, wx.ID_ANY, u"Card", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button8, 0, wx.ALL, 5 )
      
      self.m_button11 = wx.Button( self, wx.ID_ANY, u"Bitcoin", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button11, 0, wx.ALL, 5 )
      
      self.m_staticText40 = wx.StaticText( self, wx.ID_ANY, u"Ticket ID (if applicable):", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText40.Wrap( -1 )
      self.m_staticText40.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_staticText40, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.ticketID = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ticketID.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer33.Add( self.ticketID, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      
      bSizer9.Add( bSizer33, 0, wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer9 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button2.Bind( wx.EVT_BUTTON, self.ShowIPhoneOptions )
      self.m_button3.Bind( wx.EVT_BUTTON, self.ShowPCOptions )
      self.m_button6.Bind( wx.EVT_BUTTON, self.AddOther )
      self.m_button111.Bind( wx.EVT_BUTTON, self.ClearItems )
      self.m_button7.Bind( wx.EVT_BUTTON, self.PayCash )
      self.m_button8.Bind( wx.EVT_BUTTON, self.PayCard )
      self.m_button11.Bind( wx.EVT_BUTTON, self.PayBitcoin )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def ShowIPhoneOptions( self, event ):
      event.Skip()
   
   def ShowPCOptions( self, event ):
      event.Skip()
   
   def AddOther( self, event ):
      event.Skip()
   
   def ClearItems( self, event ):
      event.Skip()
   
   def PayCash( self, event ):
      event.Skip()
   
   def PayCard( self, event ):
      event.Skip()
   
   def PayBitcoin( self, event ):
      event.Skip()
   

###########################################################################
## Class CustomerFrame
###########################################################################

class CustomerFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1000,600 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHints( wx.Size( -1,-1 ), wx.Size( -1,-1 ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer14 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_bitmap3 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer14.Add( self.m_bitmap3, 0, wx.ALL|wx.EXPAND, 5 )
      
      bSizer16 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer10 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText16 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText16.Wrap( -1 )
      self.m_staticText16.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText16, 0, wx.ALL, 5 )
      
      self.m_staticText17 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText17.Wrap( -1 )
      self.m_staticText17.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText17, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer10, 1, wx.EXPAND, 5 )
      
      bSizer102 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText162 = wx.StaticText( self, wx.ID_ANY, u"Paid:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText162.Wrap( -1 )
      self.m_staticText162.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText162, 0, wx.ALL, 5 )
      
      self.m_staticText172 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText172.Wrap( -1 )
      self.m_staticText172.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText172, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.paid = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.paid.Wrap( -1 )
      self.paid.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.paid, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer102, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer16, 0, wx.EXPAND, 5 )
      
      bSizer15 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer101 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText161 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText161.Wrap( -1 )
      self.m_staticText161.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer101.Add( self.m_staticText161, 0, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer101.Add( self.method, 0, wx.ALL, 5 )
      
      
      bSizer15.Add( bSizer101, 1, wx.EXPAND, 5 )
      
      bSizer1021 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText1621 = wx.StaticText( self, wx.ID_ANY, u"Change:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1621.Wrap( -1 )
      self.m_staticText1621.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1621, 0, wx.ALL, 5 )
      
      self.m_staticText1721 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1721.Wrap( -1 )
      self.m_staticText1721.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1721, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.change = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.change.Wrap( -1 )
      self.change.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.change, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer15.Add( bSizer1021, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer15, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_VRULES )
      self.items.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer14.Add( self.items, 1, wx.EXPAND, 5 )
      
      self.qrCode = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.qrCode.Hide()
      
      bSizer14.Add( self.qrCode, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer14 )
      self.Layout()
      
      self.Centre( wx.BOTH )
   
   def __del__( self ):
      pass
   

###########################################################################
## Class PaymentFrame
###########################################################################

class PaymentFrame ( wx.Dialog ):
   
   def __init__( self, parent ):
      wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,300 ), style = wx.STAY_ON_TOP )
      
      self.SetSizeHints( wx.DefaultSize, wx.DefaultSize )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer17 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText25 = wx.StaticText( self, wx.ID_ANY, u"Taking Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText25.Wrap( -1 )
      self.m_staticText25.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer17.Add( self.m_staticText25, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      bSizer18 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText26 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText26.Wrap( -1 )
      self.m_staticText26.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer18.Add( self.m_staticText26, 1, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer18.Add( self.method, 1, wx.ALL, 5 )
      
      
      bSizer17.Add( bSizer18, 0, wx.EXPAND, 5 )
      
      self.CashPyment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashPyment.Hide()
      
      bSizer19 = wx.BoxSizer( wx.VERTICAL )
      
      self.CashStep1 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep1.Hide()
      
      bSizer20 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer21 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText29 = wx.StaticText( self.CashStep1, wx.ID_ANY, u"Enter ammount paid: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText29.Wrap( -1 )
      self.m_staticText29.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer21.Add( self.m_staticText29, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.ammountPaidCash = wx.TextCtrl( self.CashStep1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ammountPaidCash.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer21.Add( self.ammountPaidCash, 1, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer20.Add( bSizer21, 1, wx.EXPAND, 5 )
      
      self.m_button7 = wx.Button( self.CashStep1, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer20.Add( self.m_button7, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep1.SetSizer( bSizer20 )
      self.CashStep1.Layout()
      bSizer20.Fit( self.CashStep1 )
      bSizer19.Add( self.CashStep1, 1, wx.EXPAND, 5 )
      
      self.CashStep2 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep2.Hide()
      
      bSizer22 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer211 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText291 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"Please give back: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText291.Wrap( -1 )
      self.m_staticText291.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText291, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cashChange = wx.StaticText( self.CashStep2, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cashChange.Wrap( -1 )
      self.cashChange.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer211.Add( self.cashChange, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText33 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"in change", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText33.Wrap( -1 )
      self.m_staticText33.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText33, 0, wx.ALL, 5 )
      
      
      bSizer22.Add( bSizer211, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button71 = wx.Button( self.CashStep2, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button71.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer22.Add( self.m_button71, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep2.SetSizer( bSizer22 )
      self.CashStep2.Layout()
      bSizer22.Fit( self.CashStep2 )
      bSizer19.Add( self.CashStep2, 1, wx.EXPAND, 5 )
      
      
      self.CashPyment.SetSizer( bSizer19 )
      self.CashPyment.Layout()
      bSizer19.Fit( self.CashPyment )
      bSizer17.Add( self.CashPyment, 1, wx.EXPAND, 5 )
      
      self.CardPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardPayment.Hide()
      
      bSizer25 = wx.BoxSizer( wx.VERTICAL )
      
      self.CardStep1 = wx.Panel( self.CardPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardStep1.Hide()
      
      bSizer261 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer27 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText331 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"Please take £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText331.Wrap( -1 )
      self.m_staticText331.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText331, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cardDue = wx.StaticText( self.CardStep1, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cardDue.Wrap( -1 )
      self.cardDue.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer27.Add( self.cardDue, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText35 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"on the card machine", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText35.Wrap( -1 )
      self.m_staticText35.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText35, 0, wx.ALL, 5 )
      
      
      bSizer261.Add( bSizer27, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button10 = wx.Button( self.CardStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button10.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer261.Add( self.m_button10, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CardStep1.SetSizer( bSizer261 )
      self.CardStep1.Layout()
      bSizer261.Fit( self.CardStep1 )
      bSizer25.Add( self.CardStep1, 1, wx.EXPAND, 5 )
      
      
      self.CardPayment.SetSizer( bSizer25 )
      self.CardPayment.Layout()
      bSizer25.Fit( self.CardPayment )
      bSizer17.Add( self.CardPayment, 1, wx.EXPAND, 5 )
      
      self.BitcoinPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinPayment.Hide()
      
      bSizer28 = wx.BoxSizer( wx.VERTICAL )
      
      self.BitcoinWait = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinWait.Hide()
      
      bSizer291 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText361 = wx.StaticText( self.BitcoinWait, wx.ID_ANY, u"Please wait while the payment details are generated", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText361.Wrap( -1 )
      self.m_staticText361.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer291.Add( self.m_staticText361, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinWait.SetSizer( bSizer291 )
      self.BitcoinWait.Layout()
      bSizer291.Fit( self.BitcoinWait )
      bSizer28.Add( self.BitcoinWait, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinStep1 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep1.Hide()
      
      bSizer29 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText36 = wx.StaticText( self.BitcoinStep1, wx.ID_ANY, u"Get the customer to scan QR code on screen", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText36.Wrap( -1 )
      self.m_staticText36.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_staticText36, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button12 = wx.Button( self.BitcoinStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button12.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_button12, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep1.SetSizer( bSizer29 )
      self.BitcoinStep1.Layout()
      bSizer29.Fit( self.BitcoinStep1 )
      bSizer28.Add( self.BitcoinStep1, 1, wx.EXPAND, 5 )
      
      self.BitcoinStep2 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep2.Hide()
      
      bSizer293 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText363 = wx.StaticText( self.BitcoinStep2, wx.ID_ANY, u"Waiting for payment to arive", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText363.Wrap( -1 )
      self.m_staticText363.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_staticText363, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button17 = wx.Button( self.BitcoinStep2, wx.ID_ANY, u"Cancel Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button17.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_button17, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep2.SetSizer( bSizer293 )
      self.BitcoinStep2.Layout()
      bSizer293.Fit( self.BitcoinStep2 )
      bSizer28.Add( self.BitcoinStep2, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinError = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinError.Hide()
      
      bSizer292 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText362 = wx.StaticText( self.BitcoinError, wx.ID_ANY, u"The payment server is currently unavailable", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText362.Wrap( -1 )
      self.m_staticText362.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_staticText362, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button121 = wx.Button( self.BitcoinError, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button121.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_button121, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinError.SetSizer( bSizer292 )
      self.BitcoinError.Layout()
      bSizer292.Fit( self.BitcoinError )
      bSizer28.Add( self.BitcoinError, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.BitcoinPayment.SetSizer( bSizer28 )
      self.BitcoinPayment.Layout()
      bSizer28.Fit( self.BitcoinPayment )
      bSizer17.Add( self.BitcoinPayment, 1, wx.EXPAND, 5 )
      
      self.FinalStep = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.FinalStep.Hide()
      
      bSizer26 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText34 = wx.StaticText( self.FinalStep, wx.ID_ANY, u"Payment Successful", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText34.Wrap( -1 )
      self.m_staticText34.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_staticText34, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button11 = wx.Button( self.FinalStep, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_button11, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.FinalStep.SetSizer( bSizer26 )
      self.FinalStep.Layout()
      bSizer26.Fit( self.FinalStep )
      bSizer17.Add( self.FinalStep, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.SetSizer( bSizer17 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button7.Bind( wx.EVT_BUTTON, self.CashStep1Done )
      self.m_button71.Bind( wx.EVT_BUTTON, self.CashStep2Done )
      self.m_button10.Bind( wx.EVT_BUTTON, self.CardDone )
      self.m_button12.Bind( wx.EVT_BUTTON, self.BitcoinStep1Done )
      self.m_button17.Bind( wx.EVT_BUTTON, self.BitcoinErrorDome )
      self.m_button121.Bind( wx.EVT_BUTTON, self.BitcoinErrorDone )
      self.m_button11.Bind( wx.EVT_BUTTON, self.FinalDone )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def CashStep1Done( self, event ):
      event.Skip()
   
   def CashStep2Done( self, event ):
      event.Skip()
   
   def CardDone( self, event ):
      event.Skip()
   
   def BitcoinStep1Done( self, event ):
      event.Skip()
   
   def BitcoinErrorDome( self, event ):
      event.Skip()
   
   def BitcoinErrorDone( self, event ):
      event.Skip()
   
   def FinalDone( self, event ):
      event.Skip()
   

# -*- coding: utf-8 -*- 

###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc

###########################################################################
## Class MainFrame
###########################################################################

class MainFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,800 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHints( wx.Size( 1200,800 ), wx.Size( 1200,800 ) )
      self.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer9 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer1 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer5 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer11 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_bitmap1 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.Size( -1,-1 ), 0 )
      bSizer11.Add( self.m_bitmap1, 0, wx.ALL, 5 )
      
      self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"Checkout System", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1.Wrap( -1 )
      self.m_staticText1.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText1.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer11.Add( self.m_staticText1, 0, wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer11, 0, wx.EXPAND, 5 )
      
      bSizer6 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText7 = wx.StaticText( self, wx.ID_ANY, u"Items", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText7.Wrap( -1 )
      self.m_staticText7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer6.Add( self.m_staticText7, 0, wx.ALL, 5 )
      
      gbSizer1 = wx.GridBagSizer( 0, 0 )
      gbSizer1.SetFlexibleDirection( wx.BOTH )
      gbSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_button2 = wx.Button( self, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button2.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button2, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      self.m_button3 = wx.Button( self, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button3.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      gbSizer1.Add( self.m_button3, wx.GBPosition( 0, 1 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      bSizer7 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Other", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText5.Wrap( -1 )
      self.m_staticText5.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText5.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText5, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_name = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_name, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_staticText6 = wx.StaticText( self, wx.ID_ANY, u"Price", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText6.Wrap( -1 )
      self.m_staticText6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText6.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer7.Add( self.m_staticText6, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.other_price = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer7.Add( self.other_price, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.m_button6 = wx.Button( self, wx.ID_ANY, u"Add", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button6.SetFont( wx.Font( 15, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer7.Add( self.m_button6, 0, wx.ALL, 5 )
      
      
      gbSizer1.Add( bSizer7, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 2 ), 0, 5 )
      
      
      bSizer6.Add( gbSizer1, 0, wx.EXPAND, 5 )
      
      self.IPhoneOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      gbSizer2 = wx.GridBagSizer( 0, 0 )
      gbSizer2.SetFlexibleDirection( wx.BOTH )
      gbSizer2.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText9 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"iPhone", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText9.Wrap( -1 )
      self.m_staticText9.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer2.Add( self.m_staticText9, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      IPhoneButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText111 = wx.StaticText( self.IPhoneOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText111.Wrap( -1 )
      self.m_staticText111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      IPhoneButtons.Add( self.m_staticText111, 0, wx.ALL, 5 )
      
      
      gbSizer2.Add( IPhoneButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.IPhoneOptions.SetSizer( gbSizer2 )
      self.IPhoneOptions.Layout()
      gbSizer2.Fit( self.IPhoneOptions )
      bSizer6.Add( self.IPhoneOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.PCOptions = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.PCOptions.Hide()
      
      gbSizer3 = wx.GridBagSizer( 0, 0 )
      gbSizer3.SetFlexibleDirection( wx.BOTH )
      gbSizer3.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
      
      self.m_staticText91 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"PC", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText91.Wrap( -1 )
      self.m_staticText91.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
      
      gbSizer3.Add( self.m_staticText91, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 )
      
      PCButtons = wx.GridSizer( 9, 0, 0, 0 )
      
      self.m_staticText11 = wx.StaticText( self.PCOptions, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText11.Wrap( -1 )
      self.m_staticText11.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      PCButtons.Add( self.m_staticText11, 0, wx.ALL, 5 )
      
      
      gbSizer3.Add( PCButtons, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.EXPAND, 5 )
      
      
      self.PCOptions.SetSizer( gbSizer3 )
      self.PCOptions.Layout()
      gbSizer3.Fit( self.PCOptions )
      bSizer6.Add( self.PCOptions, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      bSizer5.Add( bSizer6, 1, wx.EXPAND, 5 )
      
      bSizer12 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText8 = wx.StaticText( self, wx.ID_ANY, u"Discounts", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText8.Wrap( -1 )
      self.m_staticText8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer12.Add( self.m_staticText8, 0, wx.ALL, 5 )
      
      DiscountButtons = wx.GridSizer( 0, 3, 0, 0 )
      
      self.m_staticText1111 = wx.StaticText( self, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1111.Wrap( -1 )
      self.m_staticText1111.SetFont( wx.Font( 1, 70, 90, 90, False, wx.EmptyString ) )
      
      DiscountButtons.Add( self.m_staticText1111, 0, wx.ALL, 5 )
      
      
      bSizer12.Add( DiscountButtons, 1, wx.EXPAND, 5 )
      
      
      bSizer5.Add( bSizer12, 0, wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer5, 1, wx.EXPAND, 5 )
      
      bSizer2 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer3 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText2.Wrap( -1 )
      self.m_staticText2.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      self.m_staticText2.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText2, 0, wx.ALL, 5 )
      
      self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText4.Wrap( -1 )
      self.m_staticText4.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.m_staticText4.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.m_staticText4, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      self.total.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_CAPTIONTEXT ) )
      
      bSizer3.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_button111 = wx.Button( self, wx.ID_ANY, u"Clear", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button111.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer3.Add( self.m_button111, 0, wx.LEFT, 5 )
      
      
      bSizer2.Add( bSizer3, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_SINGLE_SEL )
      self.items.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer2.Add( self.items, 1, wx.ALL|wx.EXPAND, 5 )
      
      
      bSizer1.Add( bSizer2, 1, wx.EXPAND, 5 )
      
      
      bSizer9.Add( bSizer1, 1, wx.EXPAND, 5 )
      
      bSizer33 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_button7 = wx.Button( self, wx.ID_ANY, u"Cash", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button7, 0, wx.ALL, 5 )
      
      self.m_button8 = wx.Button( self, wx.ID_ANY, u"Card", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button8.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button8, 0, wx.ALL, 5 )
      
      self.m_button11 = wx.Button( self, wx.ID_ANY, u"Bitcoin", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 20, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_button11, 0, wx.ALL, 5 )
      
      self.m_staticText40 = wx.StaticText( self, wx.ID_ANY, u"Ticket ID (if applicable):", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText40.Wrap( -1 )
      self.m_staticText40.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer33.Add( self.m_staticText40, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      self.ticketID = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ticketID.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer33.Add( self.ticketID, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
      
      
      bSizer9.Add( bSizer33, 0, wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer9 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button2.Bind( wx.EVT_BUTTON, self.ShowIPhoneOptions )
      self.m_button3.Bind( wx.EVT_BUTTON, self.ShowPCOptions )
      self.m_button6.Bind( wx.EVT_BUTTON, self.AddOther )
      self.m_button111.Bind( wx.EVT_BUTTON, self.ClearItems )
      self.m_button7.Bind( wx.EVT_BUTTON, self.PayCash )
      self.m_button8.Bind( wx.EVT_BUTTON, self.PayCard )
      self.m_button11.Bind( wx.EVT_BUTTON, self.PayBitcoin )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def ShowIPhoneOptions( self, event ):
      event.Skip()
   
   def ShowPCOptions( self, event ):
      event.Skip()
   
   def AddOther( self, event ):
      event.Skip()
   
   def ClearItems( self, event ):
      event.Skip()
   
   def PayCash( self, event ):
      event.Skip()
   
   def PayCard( self, event ):
      event.Skip()
   
   def PayBitcoin( self, event ):
      event.Skip()
   

###########################################################################
## Class CustomerFrame
###########################################################################

class CustomerFrame ( wx.Frame ):
   
   def __init__( self, parent ):
      wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1000,600 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
      self.SetSizeHints( wx.Size( -1,-1 ), wx.Size( -1,-1 ) )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer14 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_bitmap3 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"img/logo.bmp", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
      bSizer14.Add( self.m_bitmap3, 0, wx.ALL|wx.EXPAND, 5 )
      
      bSizer16 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer10 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText16 = wx.StaticText( self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText16.Wrap( -1 )
      self.m_staticText16.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText16, 0, wx.ALL, 5 )
      
      self.m_staticText17 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText17.Wrap( -1 )
      self.m_staticText17.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.m_staticText17, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.total = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.total.Wrap( -1 )
      self.total.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer10.Add( self.total, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer10, 1, wx.EXPAND, 5 )
      
      bSizer102 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText162 = wx.StaticText( self, wx.ID_ANY, u"Paid:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText162.Wrap( -1 )
      self.m_staticText162.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText162, 0, wx.ALL, 5 )
      
      self.m_staticText172 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText172.Wrap( -1 )
      self.m_staticText172.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.m_staticText172, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.paid = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.paid.Wrap( -1 )
      self.paid.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer102.Add( self.paid, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer16.Add( bSizer102, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer16, 0, wx.EXPAND, 5 )
      
      bSizer15 = wx.BoxSizer( wx.HORIZONTAL )
      
      bSizer101 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText161 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText161.Wrap( -1 )
      self.m_staticText161.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer101.Add( self.m_staticText161, 0, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer101.Add( self.method, 0, wx.ALL, 5 )
      
      
      bSizer15.Add( bSizer101, 1, wx.EXPAND, 5 )
      
      bSizer1021 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText1621 = wx.StaticText( self, wx.ID_ANY, u"Change:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1621.Wrap( -1 )
      self.m_staticText1621.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1621, 0, wx.ALL, 5 )
      
      self.m_staticText1721 = wx.StaticText( self, wx.ID_ANY, u"£", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText1721.Wrap( -1 )
      self.m_staticText1721.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.m_staticText1721, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.change = wx.StaticText( self, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.change.Wrap( -1 )
      self.change.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer1021.Add( self.change, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer15.Add( bSizer1021, 1, wx.EXPAND, 5 )
      
      
      bSizer14.Add( bSizer15, 0, wx.EXPAND, 5 )
      
      self.items = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_HRULES|wx.LC_REPORT|wx.LC_VRULES )
      self.items.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer14.Add( self.items, 1, wx.EXPAND, 5 )
      
      self.qrCode = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.qrCode.Hide()
      
      bSizer14.Add( self.qrCode, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
      
      
      self.SetSizer( bSizer14 )
      self.Layout()
      
      self.Centre( wx.BOTH )
   
   def __del__( self ):
      pass
   

###########################################################################
## Class PaymentFrame
###########################################################################

class PaymentFrame ( wx.Dialog ):
   
   def __init__( self, parent ):
      wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 1200,300 ), style = wx.STAY_ON_TOP )
      
      self.SetSizeHints( wx.DefaultSize, wx.DefaultSize )
      self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
      
      bSizer17 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText25 = wx.StaticText( self, wx.ID_ANY, u"Taking Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText25.Wrap( -1 )
      self.m_staticText25.SetFont( wx.Font( 30, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer17.Add( self.m_staticText25, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      bSizer18 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText26 = wx.StaticText( self, wx.ID_ANY, u"Method:", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText26.Wrap( -1 )
      self.m_staticText26.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer18.Add( self.m_staticText26, 1, wx.ALL, 5 )
      
      self.method = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.method.Wrap( -1 )
      self.method.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer18.Add( self.method, 1, wx.ALL, 5 )
      
      
      bSizer17.Add( bSizer18, 0, wx.EXPAND, 5 )
      
      self.CashPyment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashPyment.Hide()
      
      bSizer19 = wx.BoxSizer( wx.VERTICAL )
      
      self.CashStep1 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep1.Hide()
      
      bSizer20 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer21 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText29 = wx.StaticText( self.CashStep1, wx.ID_ANY, u"Enter ammount paid: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText29.Wrap( -1 )
      self.m_staticText29.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer21.Add( self.m_staticText29, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.ammountPaidCash = wx.TextCtrl( self.CashStep1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
      self.ammountPaidCash.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer21.Add( self.ammountPaidCash, 1, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      
      bSizer20.Add( bSizer21, 1, wx.EXPAND, 5 )
      
      self.m_button7 = wx.Button( self.CashStep1, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button7.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer20.Add( self.m_button7, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep1.SetSizer( bSizer20 )
      self.CashStep1.Layout()
      bSizer20.Fit( self.CashStep1 )
      bSizer19.Add( self.CashStep1, 1, wx.EXPAND, 5 )
      
      self.CashStep2 = wx.Panel( self.CashPyment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CashStep2.Hide()
      
      bSizer22 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer211 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText291 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"Please give back: £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText291.Wrap( -1 )
      self.m_staticText291.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText291, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cashChange = wx.StaticText( self.CashStep2, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cashChange.Wrap( -1 )
      self.cashChange.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer211.Add( self.cashChange, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText33 = wx.StaticText( self.CashStep2, wx.ID_ANY, u"in change", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText33.Wrap( -1 )
      self.m_staticText33.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer211.Add( self.m_staticText33, 0, wx.ALL, 5 )
      
      
      bSizer22.Add( bSizer211, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button71 = wx.Button( self.CashStep2, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button71.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer22.Add( self.m_button71, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CashStep2.SetSizer( bSizer22 )
      self.CashStep2.Layout()
      bSizer22.Fit( self.CashStep2 )
      bSizer19.Add( self.CashStep2, 1, wx.EXPAND, 5 )
      
      
      self.CashPyment.SetSizer( bSizer19 )
      self.CashPyment.Layout()
      bSizer19.Fit( self.CashPyment )
      bSizer17.Add( self.CashPyment, 1, wx.EXPAND, 5 )
      
      self.CardPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardPayment.Hide()
      
      bSizer25 = wx.BoxSizer( wx.VERTICAL )
      
      self.CardStep1 = wx.Panel( self.CardPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.CardStep1.Hide()
      
      bSizer261 = wx.BoxSizer( wx.VERTICAL )
      
      bSizer27 = wx.BoxSizer( wx.HORIZONTAL )
      
      self.m_staticText331 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"Please take £", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText331.Wrap( -1 )
      self.m_staticText331.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText331, 0, wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
      
      self.cardDue = wx.StaticText( self.CardStep1, wx.ID_ANY, u"0.00", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.cardDue.Wrap( -1 )
      self.cardDue.SetFont( wx.Font( 25, 70, 90, 92, False, wx.EmptyString ) )
      
      bSizer27.Add( self.cardDue, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
      
      self.m_staticText35 = wx.StaticText( self.CardStep1, wx.ID_ANY, u"on the card machine", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText35.Wrap( -1 )
      self.m_staticText35.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer27.Add( self.m_staticText35, 0, wx.ALL, 5 )
      
      
      bSizer261.Add( bSizer27, 1, wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button10 = wx.Button( self.CardStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button10.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer261.Add( self.m_button10, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.CardStep1.SetSizer( bSizer261 )
      self.CardStep1.Layout()
      bSizer261.Fit( self.CardStep1 )
      bSizer25.Add( self.CardStep1, 1, wx.EXPAND, 5 )
      
      
      self.CardPayment.SetSizer( bSizer25 )
      self.CardPayment.Layout()
      bSizer25.Fit( self.CardPayment )
      bSizer17.Add( self.CardPayment, 1, wx.EXPAND, 5 )
      
      self.BitcoinPayment = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinPayment.Hide()
      
      bSizer28 = wx.BoxSizer( wx.VERTICAL )
      
      self.BitcoinWait = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinWait.Hide()
      
      bSizer291 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText361 = wx.StaticText( self.BitcoinWait, wx.ID_ANY, u"Please wait while the payment details are generated", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText361.Wrap( -1 )
      self.m_staticText361.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer291.Add( self.m_staticText361, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinWait.SetSizer( bSizer291 )
      self.BitcoinWait.Layout()
      bSizer291.Fit( self.BitcoinWait )
      bSizer28.Add( self.BitcoinWait, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinStep1 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep1.Hide()
      
      bSizer29 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText36 = wx.StaticText( self.BitcoinStep1, wx.ID_ANY, u"Get the customer to scan QR code on screen", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText36.Wrap( -1 )
      self.m_staticText36.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_staticText36, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button12 = wx.Button( self.BitcoinStep1, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button12.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer29.Add( self.m_button12, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep1.SetSizer( bSizer29 )
      self.BitcoinStep1.Layout()
      bSizer29.Fit( self.BitcoinStep1 )
      bSizer28.Add( self.BitcoinStep1, 1, wx.EXPAND, 5 )
      
      self.BitcoinStep2 = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinStep2.Hide()
      
      bSizer293 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText363 = wx.StaticText( self.BitcoinStep2, wx.ID_ANY, u"Waiting for payment to arive", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText363.Wrap( -1 )
      self.m_staticText363.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_staticText363, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button17 = wx.Button( self.BitcoinStep2, wx.ID_ANY, u"Cancel Payment", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button17.SetFont( wx.Font( 25, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer293.Add( self.m_button17, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinStep2.SetSizer( bSizer293 )
      self.BitcoinStep2.Layout()
      bSizer293.Fit( self.BitcoinStep2 )
      bSizer28.Add( self.BitcoinStep2, 1, wx.EXPAND |wx.ALL, 5 )
      
      self.BitcoinError = wx.Panel( self.BitcoinPayment, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.BitcoinError.Hide()
      
      bSizer292 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText362 = wx.StaticText( self.BitcoinError, wx.ID_ANY, u"The payment server is currently unavailable", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText362.Wrap( -1 )
      self.m_staticText362.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_staticText362, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button121 = wx.Button( self.BitcoinError, wx.ID_ANY, u"Done", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button121.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer292.Add( self.m_button121, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.BitcoinError.SetSizer( bSizer292 )
      self.BitcoinError.Layout()
      bSizer292.Fit( self.BitcoinError )
      bSizer28.Add( self.BitcoinError, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.BitcoinPayment.SetSizer( bSizer28 )
      self.BitcoinPayment.Layout()
      bSizer28.Fit( self.BitcoinPayment )
      bSizer17.Add( self.BitcoinPayment, 1, wx.EXPAND, 5 )
      
      self.FinalStep = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
      self.FinalStep.Hide()
      
      bSizer26 = wx.BoxSizer( wx.VERTICAL )
      
      self.m_staticText34 = wx.StaticText( self.FinalStep, wx.ID_ANY, u"Payment Successful", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_staticText34.Wrap( -1 )
      self.m_staticText34.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_staticText34, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      self.m_button11 = wx.Button( self.FinalStep, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
      self.m_button11.SetFont( wx.Font( 30, 70, 90, 90, False, wx.EmptyString ) )
      
      bSizer26.Add( self.m_button11, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
      
      
      self.FinalStep.SetSizer( bSizer26 )
      self.FinalStep.Layout()
      bSizer26.Fit( self.FinalStep )
      bSizer17.Add( self.FinalStep, 1, wx.EXPAND |wx.ALL, 5 )
      
      
      self.SetSizer( bSizer17 )
      self.Layout()
      
      self.Centre( wx.BOTH )
      
      # Connect Events
      self.m_button7.Bind( wx.EVT_BUTTON, self.CashStep1Done )
      self.m_button71.Bind( wx.EVT_BUTTON, self.CashStep2Done )
      self.m_button10.Bind( wx.EVT_BUTTON, self.CardDone )
      self.m_button12.Bind( wx.EVT_BUTTON, self.BitcoinStep1Done )
      self.m_button17.Bind( wx.EVT_BUTTON, self.BitcoinErrorDome )
      self.m_button121.Bind( wx.EVT_BUTTON, self.BitcoinErrorDone )
      self.m_button11.Bind( wx.EVT_BUTTON, self.FinalDone )
   
   def __del__( self ):
      pass
   
   
   # Virtual event handlers, overide them in your derived class
   def CashStep1Done( self, event ):
      event.Skip()
   
   def CashStep2Done( self, event ):
      event.Skip()
   
   def CardDone( self, event ):
      event.Skip()
   
   def BitcoinStep1Done( self, event ):
      event.Skip()
   
   def BitcoinErrorDome( self, event ):
      event.Skip()
   
   def BitcoinErrorDone( self, event ):
      event.Skip()
   
   def FinalDone( self, event ):
      event.Skip()
   


On Sunday, July 31, 2016 at 11:17:32 PM UTC+1, Scott Talbert wrote:
>
> On Sun, 31 Jul 2016, Benjamin Misell wrote: 
>
> > Basically exactly what the title says, 
> > I have some python code for displaying QR codes in a wxpython program 
> and 
> > when i try to do so python just hangs and i cant figure out why. It 
> seems 
> > fine with StaticBitmaps defined at the start of the program but once the 
> > Mainloop function has been called i cant do it.  
> > 
> > I am using  python 3.5.2 with the latest wxpython phoenix 32-bit on 
> windows 
> > 10 64-bit 
>
> SSCCE? 
>
> http://sscce.org/

-- 
You received this message because you are subscribed to the Google Groups "wxPython-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.