cchat-gtk/internal/ui/window.go

40 lines
845 B
Go

package ui
import (
"github.com/diamondburned/cchat-gtk/internal/ui/messages"
"github.com/diamondburned/cchat-gtk/internal/ui/service"
"github.com/gotk3/gotk3/gtk"
)
type window struct {
*gtk.Paned
Services *service.View
MessageView *messages.View
}
type Controller interface {
service.Controller
messages.Controller
}
func newWindow(mainctl Controller) *window {
services := service.NewView(mainctl)
services.SetSizeRequest(leftMinWidth, -1)
services.Show()
mesgview := messages.NewView(mainctl)
mesgview.Show()
pane, _ := gtk.PanedNew(gtk.ORIENTATION_HORIZONTAL)
pane.Pack1(services, false, false)
pane.Pack2(mesgview, true, false)
pane.SetPosition(leftCurrentWidth)
pane.Show()
return &window{pane, services, mesgview}
}
func (w *window) AllServices() []*service.Service {
return w.Services.Services.Services
}