editor: SaleDetailsDialog
GtkDialog(main_dialog.toplevel): title='Sale Details', hidden
  GtkVBox(main_dialog._main_vbox):
    GtkVBox(main_dialog.vbox, expand=True, fill=True):
      GtkEventBox(main_dialog.header):
      GtkEventBox(main_dialog.main, expand=True, fill=True, padding=6): slave SaleDetailsDialog is attached
        GtkVBox(toplevel):
          GtkTable(table1, fill=True):
            GtkLabel(label9): '<b>Sale Number:</b>'
            ProxyLabel(identifier): '<span >00123</span>'
            GtkLabel(invoice_label): 'Invoice Number:'
            ProxyLabel(invoice_number): '<span ></span>'
            GtkLabel(label1): 'Open Date:'
            ProxyLabel(open_date_lbl): '<span >12/01/10</span>'
            GtkLabel(label5): 'Client:'
            GtkHBox(hbox1):
              ProxyLabel(client_lbl, expand=True, fill=True): '<span >Client</span>'
              GtkButton(details_button, fill=True):
            GtkLabel(label6): 'Status:'
            GtkHBox(hbox2):
              ProxyLabel(status_lbl, expand=True, fill=True): '<span >Returned</span>'
              GtkButton(status_details_button, fill=True): hidden
            GtkLabel(label2): 'Salesperson:'
            ProxyLabel(salesperson_lbl): '<span >SalesPerson</span>'
          GtkNotebook(details_notebook, expand=True, fill=True):
            GtkVBox(vbox):
              GtkVBox(items_vbox, expand=True, fill=True):
                ObjectTree(items_list, expand=True, fill=True):
                  column: title='Code'
                  column: title='Description', expand
                  column: title='Category', hidden
                  column: title='Manufacturer', hidden
                  column: title='Qty'
                  column: title='Base price', hidden
                  column: title='Sale price'
                  column: title='Discount', hidden
                  column: title='Total'
                  row: u'', u'Description', None, None, Decimal('1.000'), <currency $10>, <currency $100>, Decimal('-90.00'), Decimal('100.00000')
                  row: u'', u'Description', None, None, Decimal('1.000'), <currency $10>, <currency $100>, Decimal('-90.00'), Decimal('100.00000')
              GtkTable(table2, fill=True):
                GtkLabel(label4): 'Subtotal:'
                ProxyLabel(subtotal_lbl): '<span >$200.00</span>'
                GtkLabel(label8): 'Discount:'
                ProxyLabel(discount_lbl): '<span >$15.00</span>'
                GtkLabel(label7): 'Surcharge:'
                ProxyLabel(surcharge_lbl): '<span >$8.00</span>'
                GtkLabel(label3): 'Total:'
                ProxyLabel(total_lbl): '<span >$193.00</span>'
            GtkVBox(returned_items_vbox):
              GtkVBox(vbox4, expand=True, fill=True):
                ObjectTree(returned_items_list, expand=True, fill=True):
                  column: title='Date'
                  column: title='Invoice #'
                  column: title='Code', hidden
                  column: title='Description', expand
                  column: title='Quantity'
                  column: title='Sale price'
                  column: title='Total'
                  row: datetime.datetime(2010, 12, 10, 0, 0), None, u'', u'Description', Decimal('1.000'), <currency $96.50>, Decimal('96.50000')
                  row: datetime.datetime(2010, 12, 10, 0, 0), None, u'', u'Description', Decimal('1.000'), <currency $96.50>, Decimal('96.50000')
                GtkHBox(hbox3, fill=True):
                  GtkButton(print_return_report): 'gtk-print'
                  GtkLabel(label21, expand=True, fill=True): 'Check the "Details" tab for more information...'
                  GtkLabel(label23, fill=True): 'Total:'
                  ProxyLabel(return_total_lbl, fill=True): '<span >$193.00</span>'
            GtkVBox(payments_vbox):
              ObjectList(payments_list, expand=True, fill=True):
                column: title='Payment #'
                column: title='Type'
                column: title='Description', expand
                column: title='Due date'
                column: title='Paid date'
                column: title='Status'
                column: title='Value'
                column: title='Paid value'
                row: 999, u'Money', u'1/1 Money for sale 00123', datetime.datetime(2010, 12, 1, 0, 0), datetime.datetime(2010, 12, 1, 0, 0), u'Paid', <currency $193>, <currency $193>
                row: 666, u'Money', u'Money returned for sale 00123', datetime.datetime(2010, 12, 10, 0, 0), datetime.datetime(2010, 12, 10, 0, 0), u'To Pay', Decimal('-193.00000'), 0
              GtkTable(table4, fill=True):
                GtkLabel(label13): 'Discount:'
                ProxyLabel(total_discount): '<span >$ 0.00</span>'
                GtkLabel(label11): 'Penalty:'
                ProxyLabel(total_penalty): '<span >$ 0.00</span>'
                ProxyLabel(kiwilabel16): 'Total Paid:'
                ProxyLabel(total_paid): '<span >$193.00</span>'
                GtkLabel(label12): 'Interest:'
                ProxyLabel(total_interest): '<span >$ 0.00</span>'
                GtkLabel(label10): 'Total:'
                ProxyLabel(total_value): '<span >$ 0.00</span>'
            GtkVBox(vbox3):
              ObjectList(payments_info_list, expand=True, fill=True):
                column: title='When'
                column: title='Payment', expand
                column: title='Changed'
                column: title='From'
                column: title='To'
                column: title='Reason', expand
            GtkVBox(vbox2):
              GtkVBox(vbox5, expand=True, fill=True):
                ObjectList(comments_list, expand=True, fill=True):
                  column: title='Date'
                  column: title='Who', expand
                  column: title='Notes', expand
                  row: datetime.datetime(2010, 12, 10, 0, 0), u'Administrator', u'Foo bar'
                GtkHButtonBox(hbuttonbox2, fill=True):
                  GtkButton(comment_add): 'Add Comment'
                  GtkButton(comment_info): 'gtk-info', insensitive
            GtkVBox(vbox6):
              GtkScrolledWindow(scrolledwindow2, expand=True, fill=True):
                ProxyTextView(notes): invalid
          GtkHButtonBox(hbuttonbox1, fill=True):
            GtkButton(print_booklets): 'Print booklets', hidden
            GtkButton(print_bills): 'Print Bills', hidden
            GtkButton(print_button): 'gtk-print'
      GtkHBox(fill=True):
        GtkEventBox(main_dialog.extra_holder, expand=True, fill=True, padding=6):
        GtkEventBox(main_dialog.print_holder, expand=True, fill=True):
        GtkEventBox(main_dialog.notice, fill=True):
        GtkEventBox(main_dialog.details_holder, padding=6, pack-end):
    GtkHButtonBox(fill=True, pack-end):
      GtkButton(main_dialog.cancel_button, expand=True, fill=True, padding=6): 'gtk-cancel', hidden
      GtkButton(main_dialog.ok_button, expand=True, fill=True, padding=6): 'gtk-ok', hidden
