1
0
Fork 0
mirror of https://github.com/diamondburned/cchat-gtk.git synced 2024-11-01 12:04:15 +00:00
cchat-gtk/internal/ui/messages/container/compact/compact.go
diamondburned f5ba082b86 Slight Gtk fixes and improvements
This commit uses the GtkFileChooserNative over Gtk's own. It also
slightly refactors the message container API and fixes minor UI
appearances, especially adding the separator.
2020-11-05 11:08:30 -08:00

42 lines
1.2 KiB
Go

package compact
import (
"github.com/diamondburned/cchat"
"github.com/diamondburned/cchat-gtk/internal/gts"
"github.com/diamondburned/cchat-gtk/internal/ui/messages/container"
"github.com/diamondburned/cchat-gtk/internal/ui/messages/input"
"github.com/diamondburned/cchat-gtk/internal/ui/primitives"
)
type Container struct {
*container.GridContainer
}
func NewContainer(ctrl container.Controller) *Container {
c := container.NewGridContainer(constructor{}, ctrl)
primitives.AddClass(c, "compact-conatainer")
return &Container{c}
}
func (c *Container) CreateMessage(msg cchat.MessageCreate) {
gts.ExecAsync(func() { c.GridContainer.CreateMessageUnsafe(msg) })
}
func (c *Container) UpdateMessage(msg cchat.MessageUpdate) {
gts.ExecAsync(func() { c.GridContainer.UpdateMessageUnsafe(msg) })
}
func (c *Container) DeleteMessage(msg cchat.MessageDelete) {
gts.ExecAsync(func() { c.GridContainer.DeleteMessageUnsafe(msg) })
}
type constructor struct{}
func (constructor) NewMessage(msg cchat.MessageCreate) container.GridMessage {
return NewMessage(msg)
}
func (constructor) NewPresendMessage(msg input.PresendMessage) container.PresendGridMessage {
return NewPresendMessage(msg)
}