editor: ProductStockEditor
GtkDialog(main_dialog.toplevel): title='Edit Details of "Product"', 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 ProductStockEditor is attached
        GtkVBox(toplevel):
          GtkEventBox(information_holder, fill=True): slave ProductInformationSlave is attached
            GtkAlignment(alignment2):
              GtkVBox(vbox1):
                GtkFrame(general_frame, fill=True):
                  GtkAlignment(alignment1):
                    GtkTable(table4):
                      GtkLabel(manufacturer_lbl): 'Manufacturer:'
                      ProxyComboEntry(manufacturer):
                        item: ''
                      GtkLabel(brand_lbl): 'Brand:'
                      ProxyEntry(brand): ''
                      GtkLabel(model_lbl): 'Model:'
                      ProxyEntry(product_model): ''
                      GtkLabel(family_lbl): 'Family:'
                      ProxyEntry(family): ''
                      GtkLabel(width_lbl): 'Width:'
                      ProxySpinButton(width): '0'
                      GtkLabel(weight_lbl): 'Weight:'
                      GtkHBox(hbox2):
                        ProxySpinButton(weight, expand=True, fill=True): '0.000'
                        GtkLabel(kg_lbl, fill=True): 'Kg'
                      GtkLabel(depth_lbl): 'Depth:'
                      ProxySpinButton(depth): '0'
                      GtkLabel(height_lbl): 'Height:'
                      ProxySpinButton(height): '0'
                      GtkLabel(part_number_lbl): 'Part-Number:'
                      ProxyEntry(part_number): ''
                      ProxyCheckButton(internal_use): 'Internal use'
                  GtkLabel(label4): '<b>General Details</b>'
                GtkFrame(storable_frame, fill=True):
                  GtkAlignment(alignment5):
                    GtkTable(table2):
                      GtkLabel(location_lbl): 'Location:'
                      ProxyEntry(location): ''
                      GtkLabel(min_lbl): 'Minimum:'
                      GtkHBox(min_hbox):
                        ProxySpinButton(minimum_quantity, expand=True, fill=True): '0.00'
                        GtkLabel(min_unit, fill=True): 'Unit(s)'
                      GtkLabel(max_lbl): 'Maximum:'
                      GtkHBox(max_hbox):
                        ProxySpinButton(maximum_quantity, expand=True, fill=True): '0.00'
                        GtkLabel(max_unit, fill=True): 'Unit(s)'
                  GtkLabel(label5): '<b>Stock Details</b>'
                GtkFrame(nfe_frame, fill=True): hidden
                  GtkAlignment(alignment6):
                    GtkTable(table3):
                      GtkLabel(ncm_lbl): 'NCM:'
                      ProxyEntry(ncm): ''
                      GtkLabel(ex_tipi_lbl): 'EX TIPI:'
                      ProxyEntry(ex_tipi): ''
                      GtkLabel(genero_lbl): 'G\xc3\xaanero:'
                      ProxyEntry(genero): ''
                  GtkLabel(label6): '<b>Mercosul Details</b>'
          GtkHBox(hbox1, expand=True, fill=True):
            GtkFrame(frame1, expand=True, fill=True, padding=6):
              GtkAlignment(alignment1):
                GtkEventBox(details_holder): slave SellableDetailsSlave is attached
                  GtkVBox(toplevel):
                    GtkTable(table1, expand=True, fill=True):
                      GtkLabel(notes_lbl): 'Details:'
                      GtkScrolledWindow(scrolledwindow1):
                        ProxyTextView(notes):
                      GtkVBox(vbox2):
                        GtkEventBox(sellable_image_holder, expand=True, fill=True): slave ImageSlave is attached
                          GtkHBox(toplevel):
                            GtkEventBox(eventbox, expand=True, fill=True):
                              GtkImage(image):
                    GtkLabel(label1, fill=True): 'Right-click image for more options'
              GtkLabel(label1): '<b>Extra</b>'
      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'
