func newUnifiedLayout(ui *gtkUI, left, parent *gtk.Box) *unifiedLayout { ul := &unifiedLayout{ ui: ui, cl: &conversationList{}, leftPane: left, itemMap: make(map[int]*conversationStackItem), } ul.cl.layout = ul builder := newBuilder("UnifiedLayout") builder.getItems( "treeview", &ul.cl.view, "liststore", &ul.cl.model, "revealer", &ul.revealer, "notebook", &ul.notebook, "header_label", &ul.header, "header_box", &ul.headerBox, "close_button", &ul.close, ) builder.ConnectSignals(map[string]interface{}{ "on_activate": ul.cl.onActivate, "on_clicked": ul.onCloseClicked, "on_switch_page": ul.onSwitchPage, }) parent.PackStart(ul.revealer, false, true, 0) parent.SetChildPacking(left, false, true, 0, gtk.PACK_START) ul.notebook.SetSizeRequest(500, -1) ul.revealer.Hide() left.SetHAlign(gtk.ALIGN_FILL) left.SetHExpand(true) return ul }