From 20f13a4b5be1a986e1085214f492a0afe6db322f Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 12 Mar 2023 08:47:16 -0500 Subject: Squashed commit of the following: commit 448abc843e2241bab6c399f7a836dccba1defc18 Author: Jeff Carr Date: Sun Mar 12 08:35:28 2023 -0500 this should probably be a new release now Signed-off-by: Jeff Carr commit a4064f7a6c5ac67437768aa2bc67c75dafc91c4c Author: Jeff Carr Date: Sat Mar 11 03:18:23 2023 -0600 able to work on add 'Box' and play with 'Image' Signed-off-by: Jeff Carr commit 6e59573d85e82ecb005805f50711dddc2df50480 Author: Jeff Carr Date: Sat Mar 11 03:04:34 2023 -0600 rearrange widget debugging Signed-off-by: Jeff Carr commit e0570de75c6eb1b4f49e541d9ef5d83ae4434d3d Author: Jeff Carr Date: Sat Mar 11 02:29:20 2023 -0600 debugging is lots smarter Signed-off-by: Jeff Carr commit ece32a1e43d91cd197d0a8497ad2f034c46126e1 Author: Jeff Carr Date: Fri Mar 10 21:38:23 2023 -0600 first pass on a node delete Signed-off-by: Jeff Carr commit c91cb0eddb0f73f8dea9b21a16cd76c7e2c19a33 Author: Jeff Carr Date: Fri Mar 10 21:06:29 2023 -0600 can recreate window list Signed-off-by: Jeff Carr commit 470f9dc26aefd3626b319264fe151aa48d4d5377 Author: Jeff Carr Date: Fri Mar 10 12:07:34 2023 -0600 attempt to ressurect mouse in the console plugin Signed-off-by: Jeff Carr commit 747bb53e06dda458cc8cd77b665f4d9d07f5e925 Author: Jeff Carr Date: Fri Mar 10 10:47:14 2023 -0600 jesus. gocui actually builds and works again as a plugin it didn't take too much to change it Signed-off-by: Jeff Carr commit 9283c65c8e9b8d2630b251ad952b6b52caddb307 Author: Jeff Carr Date: Fri Mar 10 07:26:53 2023 -0600 show/hide/etc for window widgets Signed-off-by: Jeff Carr commit 5724cd7ffd8595ae049a7c9c21cb2f1a993c4b76 Author: Jeff Carr Date: Fri Mar 10 06:40:36 2023 -0600 compiles and runs Signed-off-by: Jeff Carr commit 44a5e69ce17cb506adfe24ca72cc86caa9ebcc70 Author: Jeff Carr Date: Fri Mar 10 05:57:15 2023 -0600 more debugging improvements Signed-off-by: Jeff Carr commit b86f145f0252e7545b2e7fa78e1d5960cacb7bad Author: Jeff Carr Date: Fri Mar 10 03:42:32 2023 -0600 set margin on tab's works Signed-off-by: Jeff Carr commit d2218c08cf44acd5f017a8faa1439ee6d2fd46d5 Author: Jeff Carr Date: Thu Mar 9 16:26:21 2023 -0600 ignore all *.so files Signed-off-by: Jeff Carr commit e21934fff3cfea30b04df01bf0714f6927aa78f4 Author: Jeff Carr Date: Thu Mar 9 16:25:15 2023 -0600 can't embed the toolkit/*.so files here Signed-off-by: Jeff Carr commit f1e6c5fc9c8ca36db3ad6109d64612b6850fa856 Author: Jeff Carr Date: Thu Mar 9 16:21:14 2023 -0600 andlabs group widget has Show() and Hide() Signed-off-by: Jeff Carr commit e8487504aa76ca99c4891b777585a428fda0ef62 Author: Jeff Carr Date: Thu Mar 9 16:07:56 2023 -0600 pass the node id into the plugin to use in channels Signed-off-by: Jeff Carr commit 3667940a77af4e3855facb9247771d595477302f Author: Jeff Carr Date: Thu Mar 9 14:20:21 2023 -0600 fix SetText() on Label Signed-off-by: Jeff Carr commit 311d6be66db84b63fb7124df64e2e9be0f0b76a4 Author: Jeff Carr Date: Thu Mar 9 14:06:46 2023 -0600 still compiles and runs Signed-off-by: Jeff Carr commit ee4e9b21ef59a97f902c6dae2a57ac7b3063fe3b Author: Jeff Carr Date: Thu Mar 9 11:02:34 2023 -0600 compiles Signed-off-by: Jeff Carr Signed-off-by: Jeff Carr --- toolkit/widget.go | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) (limited to 'toolkit/widget.go') diff --git a/toolkit/widget.go b/toolkit/widget.go index 9241d5a..30169ba 100644 --- a/toolkit/widget.go +++ b/toolkit/widget.go @@ -11,18 +11,26 @@ package toolkit // Event() seems like a good name. // Could a protobuf be used here? (Can functions be passed?) type Widget struct { - Name string // "New", "Delete", "Set", aka something to do - Action string // "New", "Delete", "Set", aka something to do - // Type string // after lots of back and forth, a simple string + Name string + Action string // "New", "Delete", "Set", aka something to do Type WidgetType + // This function is how you interact with the toolkit + // latest attempt. seems to work so far (2023/02/28) + // Hopefully this will be the barrier between the goroutines + // TODO: move this interaction to channels + Custom func() + + // re-adding an id to test channels + id int + // This is how the values are passed back and forth // values from things like checkboxes & dropdown's // The string is also used to set the button name B bool I int - // maybe safe if there is correctly working Custom() between goroutines - // (still probably not, almost certainly not) + // maybe safe if there is correctly working Custom() between goroutines? + // (still probably not, almost certainly not. not possible. layer violation?) S string // not safe to have 'S' // This GUI is intended for simple things @@ -38,10 +46,6 @@ type Widget struct { // Make widgets fill up the space available Expand bool - - // latest attempt. seems to work so far (2023/02/28) - // Hopefully this will be the barrier between the goroutines - Custom func() } type WidgetType int @@ -62,6 +66,8 @@ const ( Slider Spinner Grid + Box + Image Flag ) @@ -93,6 +99,10 @@ func (s WidgetType) String() string { return "Spinner" case Grid: return "Grid" + case Box: + return "Box" + case Image: + return "Image" case Flag: return "Flag" case Unknown: @@ -100,3 +110,15 @@ func (s WidgetType) String() string { } return "GuiToolkitTUndefinedType" } + +// this is hopefully just used in a very few places for +// debuging the interaction between go apps and the underlying +// toolkits. Hopefully this is less prone to problems and can +// detect memory leaks, threading problems, memory allocation & mapping errors, etc +func (w *Widget) GetId() int { + return w.id +} + +func (w *Widget) SetId(i int) { + w.id = i +} -- cgit v1.2.3