From 0ac43946b15c3f69bd5ee1a06e61695bf23968da Mon Sep 17 00:00:00 2001 From: sunglocto Date: Sun, 22 Feb 2026 08:16:14 +0000 Subject: [PATCH] this commit was sponsored by RAID SHADOW LEGENDS --- assets.go | 13 +++++++++ assets/comment.png | Bin 0 -> 413 bytes main.go | 67 +++++++++++++++++++++++++++++++++++---------- 3 files changed, 65 insertions(+), 15 deletions(-) create mode 100644 assets/comment.png diff --git a/assets.go b/assets.go index 96c71f8..bfdd96e 100644 --- a/assets.go +++ b/assets.go @@ -83,6 +83,10 @@ var hourglassB64 string = base64.StdEncoding.EncodeToString(hourglassBytes) var connectBytes []byte var connectB64 string = base64.StdEncoding.EncodeToString(connectBytes) +//go:embed assets/comment.png +var commentBytes []byte +var commentB64 string = base64.StdEncoding.EncodeToString(commentBytes) + func init() { loader := gdkpixbuf.NewPixbufLoader() @@ -235,4 +239,13 @@ func init() { loader.Close() clientAssets["connect"] = gdk.NewTextureForPixbuf(loader.Pixbuf()) + + + loader = gdkpixbuf.NewPixbufLoader() + + commentData, _ := base64.StdEncoding.DecodeString(commentB64) + loader.Write(commentData) + loader.Close() + + clientAssets["comment"] = gdk.NewTextureForPixbuf(loader.Pixbuf()) } diff --git a/assets/comment.png b/assets/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc9233ea63c89d52a99494dd0f0735a29a3ec3b GIT binary patch literal 413 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfl=Sn#WBR z*fv8^T4B2JSB8jBtO1WV^Z);6&z4p9;oJTHy93T%kN@+x{;TAXhI66mj%*dlrVlg& zJ})j0IJ^G;-~C^O7X9Q3_;!6 zegosyZodYe4M(Ip6r3k8o-h@c`_C%fBi1oz$D)t?I;Wn!+ref2;_q|$1iOGgM%OZq zv^8?Qx2gXwy6mI1z;&UyLXBP3>3O@EF8yHb;P&)7<-qIZP{ZF5{9?K|+ZhIi@7?@L V`yOR+GcYhPc)I$ztaD0e0szVaz=r?; literal 0 HcmV?d00001 diff --git a/main.go b/main.go index 255354f..11b70b9 100644 --- a/main.go +++ b/main.go @@ -7,10 +7,10 @@ import ( "context" "fmt" "github.com/diamondburned/gotk4/pkg/gdk/v4" + "github.com/diamondburned/gotk4/pkg/gdkpixbuf/v2" "github.com/diamondburned/gotk4/pkg/gio/v2" "github.com/diamondburned/gotk4/pkg/glib/v2" "github.com/diamondburned/gotk4/pkg/gtk/v4" - "github.com/diamondburned/gotk4/pkg/gdkpixbuf/v2" "github.com/gen2brain/beeep" "github.com/go-analyze/charts" "path/filepath" @@ -34,6 +34,10 @@ var empty_dialog *gtk.Image var connectionStatus *gtk.Label var connectionIcon *gtk.Image + +var mStatus *gtk.Label +var mIcon *gtk.Image + var pingStatus *gtk.Label // var msgs *gtk.ListBox @@ -111,9 +115,9 @@ func main() { TransportConfiguration: xmpp.TransportConfiguration{ Address: loadedConfig.Server, }, - Jid: loadedConfig.Username + "/lambda." + str, - Credential: xmpp.Password(loadedConfig.Password), - Insecure: loadedConfig.Insecure, + Jid: loadedConfig.Username + "/lambda." + str, + Credential: xmpp.Password(loadedConfig.Password), + Insecure: loadedConfig.Insecure, // StreamLogger: os.Stdout, StreamManagementEnable: true, } @@ -193,7 +197,8 @@ func main() { } */ - originator := jid.MustParse(m.From).Bare().String() + originator := JidMustParse(m.From).Bare() + mStatus.SetText(originator) glib.IdleAdd(func() { //uiQueue <- func() { @@ -308,11 +313,14 @@ func main() { if ok { userdevices.Store(user, userUnit{}) - b := gtk.NewButtonWithLabel(user) - b.ConnectClicked(func() { - b.AddCSSClass("accent") + b := gtk.NewLabel(user) + gesture1 := gtk.NewGestureClick() + gesture1.SetButton(1) + gesture1.Connect("pressed", func() { switchToTab(user, &window.Window) }) + + b.AddController(gesture1) menu.Append(b) } } @@ -375,6 +383,7 @@ func main() { } }() connectionStatus.SetText(fmt.Sprintf("Connected as %s", JidMustParse(clientroot.Session.BindJid).Bare())) + connectionStatus.SetTooltipText(fmt.Sprintf("Binded JID: %s\nUsing TLS: %t", clientroot.Session.BindJid, clientroot.Session.TlsEnabled)) connectionIcon.SetFromPaintable(clientAssets["connect"]) // Join rooms in bookmarks if loadedConfig.JoinBookmarks { @@ -411,11 +420,14 @@ func main() { } createTab(jid, true) - b := gtk.NewButtonWithLabel(jid) - b.ConnectClicked(func() { - b.AddCSSClass("accent") + b := gtk.NewLabel(jid) + gesture1 := gtk.NewGestureClick() + gesture1.SetButton(1) + gesture1.Connect("pressed", func() { switchToTab(jid, &window.Window) }) + + b.AddController(gesture1) menu.Append(b) } }() @@ -604,11 +616,14 @@ func activate(app *gtk.Application) { } createTab(t, true) - b := gtk.NewButtonWithLabel(t) - b.ConnectClicked(func() { - b.AddCSSClass("accent") + b := gtk.NewLabel(t) + gesture1 := gtk.NewGestureClick() + gesture1.SetButton(1) + gesture1.Connect("pressed", func() { switchToTab(t, &window.Window) }) + + b.AddController(gesture1) menu.Append(b) } win.SetVisible(false) @@ -650,6 +665,7 @@ func activate(app *gtk.Application) { cBox := gtk.NewBox(gtk.OrientationHorizontal, 0) connectionIcon = gtk.NewImageFromPaintable((clientAssets["disconnect"])) + connectionIcon.AddCSSClass("icon") connectionStatus = gtk.NewLabel("Disconnected") cBox.Append(connectionIcon) @@ -657,6 +673,25 @@ func activate(app *gtk.Application) { statBar.Append(cBox) + mBox := gtk.NewBox(gtk.OrientationHorizontal, 0) + + gesture1 := gtk.NewGestureClick() + gesture1.SetButton(1) + gesture1.Connect("pressed", func() { + current = mStatus.Text() + switchToTab(current, &window.Window) + }) + + mIcon = gtk.NewImageFromPaintable((clientAssets["comment"])) + mIcon.AddCSSClass("icon") + mStatus = gtk.NewLabel("-") + mStatus.AddController(gesture1) + + cBox.Append(mIcon) + cBox.Append(mStatus) + + statBar.Append(mBox) + pBox := gtk.NewBox(gtk.OrientationHorizontal, 0) pBox.SetTooltipText("Ping between you and your XMPP server\nRight-click to see graph") gesture := gtk.NewGestureClick() @@ -715,7 +750,9 @@ func activate(app *gtk.Application) { pBox.Append(pingStatus) statBar.Append(pBox) - box.Append(statBar) + scrollerStatBar := gtk.NewScrolledWindow() + scrollerStatBar.SetChild(statBar) + box.Append(scrollerStatBar) // scroller.SetChild(empty_dialog) scroller.SetChild(empty_dialog)