editor: WorkOrderEditor
GtkDialog(main_dialog.toplevel): title='Edit Details of "Work order"', 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 WorkOrderEditor is attached
        GtkVBox(toplevel):
          GtkAlignment(alignment1, fill=True):
            GtkTable(table1):
              GtkLabel(label4): 'Work order:'
              ProxyLabel(identifier): '<span >00666</span>'
              GtkLabel(label20): 'Status:'
              GtkHBox(hbox2):
                ProxyLabel(status_str, expand=True, fill=True): '<span >Finished</span>'
                GtkImage(state_icon):
                GtkButton(toggle_status_btn, fill=True): hidden
              GtkLabel(label5): 'Category:'
              GtkHBox(hbox1):
                ProxyComboBox(category, expand=True, fill=True):
                  item: 'No category'
                  item: 'Categoty XXX', selected
                GtkButton(category_create, fill=True):
                GtkButton(category_edit, fill=True): insensitive
              GtkLabel(label9): 'Supplier order:'
              ProxyEntry(supplier_order): 'A1234'
              GtkLabel(label8): 'Client:'
              GtkHBox():
                ProxyEntry(client, expand=True, fill=True): 'Client'
                GtkButton():
              GtkLabel(sellable_lbl): 'Equipment:'
              GtkHBox(hbox3):
                GtkLabel(sellable_desc, expand=True, fill=True): 'Code - Description'
                GtkButton(equip_search_button, fill=True):
                GtkLabel(label7, fill=True): 'Qty:'
                ProxySpinButton(quantity, fill=True): '1'
              GtkLabel(equip_des): 'Description:'
              ProxyEntry(description): 'Test equipment'
          GtkNotebook(slaves_notebook, expand=True, fill=True):
            GtkEventBox(opening_holder): slave WorkOrderOpeningSlave is attached
              GtkVBox(toplevel):
                GtkHBox(hbox7, fill=True):
                  GtkLabel(label6, fill=True): 'Opening date:'
                  ProxyDateEntry(open_date, expand=True, fill=True): datetime.today()
                GtkLabel(label9, fill=True): 'Defect reported by client:'
                GtkScrolledWindow(scrolledwindow1, expand=True, fill=True):
                  ProxyTextView(defect_reported):
            GtkEventBox(quote_holder): slave WorkOrderQuoteSlave is attached
              GtkVBox(toplevel):
                GtkTable(table2, fill=True):
                  GtkLabel(description_lbl): 'Equipment:', hidden
                  ProxyEntry(description): 'Test equipment', hidden
                  GtkLabel(label16): 'Quote responsible:'
                  ProxyComboEntry(quote_responsible):
                    item: 'Administrator'
                    item: 'Cleusa Blanc Ferreira Norbiato'
                    item: 'Deivis Alexandre Junior'
                    item: 'Maria Aparecida Ardana'
                    item: 'Osvaldo Denadai Marin'
                  GtkLabel(label10): 'Estimated time:'
                  ProxyEntry(estimated_hours): '100.0'
                  GtkLabel(label11): 'Estimated cost:'
                  ProxyEntry(estimated_cost): ''
                  GtkLabel(label5): 'Estimated start:'
                  ProxyDateEntry(estimated_start): datetime.datetime(2013, 1, 1, 0, 0)
                  GtkLabel(label18): 'Estimated finish:'
                  ProxyDateEntry(estimated_finish): datetime.datetime(2013, 1, 2, 0, 0)
                GtkLabel(label12, fill=True): 'Defect detected by responsible:'
                GtkScrolledWindow(scrolledwindow2, expand=True, fill=True):
                  ProxyTextView(defect_detected):
            GtkEventBox(execution_holder): slave WorkOrderExecutionSlave is attached, insensitive
              GtkVBox(toplevel):
                GtkTable(table3, fill=True):
                  GtkLabel(label17): 'Execution responsible:'
                  ProxyComboEntry(execution_responsible):
                    item: 'Administrator'
                    item: 'Cleusa Blanc Ferreira Norbiato'
                    item: 'Deivis Alexandre Junior'
                    item: 'Maria Aparecida Ardana'
                    item: 'Osvaldo Denadai Marin'
                GtkHSeparator(hseparator1, fill=True):
                GtkEventBox(sellable_item_holder, expand=True, fill=True): slave _WorkOrderItemSlave is attached
                  GtkVBox(toplevel):
                    GtkTable(item_table, fill=True):
                      GtkHBox(hbox2):
                        ProxyLabel(item_lbl, fill=True): 'Item:'
                        ProxyEntry(barcode, fill=True): '', invalid
                        GtkButton(product_button):
                      ProxyLabel(kiwilabel2): 'Quantity:'
                      ProxySpinButton(quantity): '0.000', insensitive
                      ProxyLabel(unit_label): '<span weight="bold"></span>'
                      ProxyLabel(cost_label): 'Cost:'
                      ProxySpinButton(cost): '0.00', insensitive
                      GtkButton(add_sellable_button): insensitive
                      ProxyLabel(sellable_description): '<span ></span>'
                      GtkLabel(minimum_quantity_lbl): 'Minimum:', hidden
                      ProxyLabel(minimum_quantity): '<span >0.0</span>', hidden
                      GtkLabel(stock_quantity_lbl): 'Stock:', hidden
                      ProxyLabel(stock_quantity): '<span >0.0</span>', hidden
                    GtkEventBox(list_holder, expand=True, fill=True): slave AdditionListSlave is attached
                      GtkVBox(toplevel):
                        GtkVBox(list_vbox, expand=True, fill=True):
                          ObjectTree(klist, expand=True, fill=True):
                            column: title='Code', hidden
                            column: title='Barcode', hidden
                            column: title='Description', expand
                            column: title='Price'
                            column: title='Quantity'
                            column: title='Consumed quantity'
                            column: title='Total'
                            row: u'', u'', u'Product A', <currency $99>, Decimal('2.000'), Decimal('0.000'), <currency $198>
                            row: u'', u'', u'Product B', <currency $5>, Decimal('100.000'), Decimal('0.000'), <currency $500>
                          GtkHBox(summary, fill=True):
                            GtkLabel(expand=True, fill=True, padding=6): '<b>Total:</b>'
                            GtkLabel(): '<b>$698.00</b>'
                        GtkHBox(hbox1, fill=True):
                          GtkHBox(button_box):
                            GtkButton(add_button): hidden
                            GtkButton(edit_button): insensitive
                            GtkButton(delete_button): insensitive
                          GtkHBox(message_hbox, expand=True, fill=True): hidden
                            GtkLabel(message_label, expand=True, fill=True):
                            GtkButton(message_details_button, fill=True): 'Details'
            GtkEventBox(history_holder): slave WorkOrderHistorySlave is attached
              GtkAlignment(toplevel):
                GtkVBox(vbox1):
                  ObjectList(details_list, expand=True, fill=True):
                    column: title='Date'
                    column: title='Who', expand
                    column: title='What', expand
                    column: title='Old value', hidden
                    column: title='New value'
                    column: title='Notes'
                    row: datetime.datetime(2013, 3, 1, 0, 0), u'Administrator', u'Approved', u'No', u'Yes', None
                    row: datetime.datetime(2013, 3, 2, 0, 0), u'Administrator', u'Status', u'Opened', u'Waiting', None
                    row: datetime.datetime(2013, 3, 3, 0, 0), u'Administrator', u'Status', u'Waiting', u'In progress', None
                    row: datetime.datetime(2013, 3, 4, 0, 0), u'Administrator', u'Status', u'In progress', u'Finished', None
                  GtkHBox(hbox1, fill=True):
                    GtkButton(details_btn, fill=True): 'gtk-info', insensitive
      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'
      GtkButton(main_dialog.ok_button, expand=True, fill=True, padding=6): 'gtk-ok'
      GtkButton(main_dialog.help_button, padding=6): 'gtk-help'
