diff options
| author | Jeff Carr <[email protected]> | 2023-03-12 08:47:16 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2023-03-12 08:47:16 -0500 |
| commit | 20f13a4b5be1a986e1085214f492a0afe6db322f (patch) | |
| tree | 35d633c45a36798126520269e13ae70dd70b5b20 /toolkit/democui/log.go | |
| parent | 49202eeafdad8e5780fefdad3d2f87fd4354725e (diff) | |
Squashed commit of the following:
commit 448abc843e2241bab6c399f7a836dccba1defc18
Author: Jeff Carr <[email protected]>
Date: Sun Mar 12 08:35:28 2023 -0500
this should probably be a new release now
Signed-off-by: Jeff Carr <[email protected]>
commit a4064f7a6c5ac67437768aa2bc67c75dafc91c4c
Author: Jeff Carr <[email protected]>
Date: Sat Mar 11 03:18:23 2023 -0600
able to work on add 'Box' and play with 'Image'
Signed-off-by: Jeff Carr <[email protected]>
commit 6e59573d85e82ecb005805f50711dddc2df50480
Author: Jeff Carr <[email protected]>
Date: Sat Mar 11 03:04:34 2023 -0600
rearrange widget debugging
Signed-off-by: Jeff Carr <[email protected]>
commit e0570de75c6eb1b4f49e541d9ef5d83ae4434d3d
Author: Jeff Carr <[email protected]>
Date: Sat Mar 11 02:29:20 2023 -0600
debugging is lots smarter
Signed-off-by: Jeff Carr <[email protected]>
commit ece32a1e43d91cd197d0a8497ad2f034c46126e1
Author: Jeff Carr <[email protected]>
Date: Fri Mar 10 21:38:23 2023 -0600
first pass on a node delete
Signed-off-by: Jeff Carr <[email protected]>
commit c91cb0eddb0f73f8dea9b21a16cd76c7e2c19a33
Author: Jeff Carr <[email protected]>
Date: Fri Mar 10 21:06:29 2023 -0600
can recreate window list
Signed-off-by: Jeff Carr <[email protected]>
commit 470f9dc26aefd3626b319264fe151aa48d4d5377
Author: Jeff Carr <[email protected]>
Date: Fri Mar 10 12:07:34 2023 -0600
attempt to ressurect mouse in the console plugin
Signed-off-by: Jeff Carr <[email protected]>
commit 747bb53e06dda458cc8cd77b665f4d9d07f5e925
Author: Jeff Carr <[email protected]>
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 <[email protected]>
commit 9283c65c8e9b8d2630b251ad952b6b52caddb307
Author: Jeff Carr <[email protected]>
Date: Fri Mar 10 07:26:53 2023 -0600
show/hide/etc for window widgets
Signed-off-by: Jeff Carr <[email protected]>
commit 5724cd7ffd8595ae049a7c9c21cb2f1a993c4b76
Author: Jeff Carr <[email protected]>
Date: Fri Mar 10 06:40:36 2023 -0600
compiles and runs
Signed-off-by: Jeff Carr <[email protected]>
commit 44a5e69ce17cb506adfe24ca72cc86caa9ebcc70
Author: Jeff Carr <[email protected]>
Date: Fri Mar 10 05:57:15 2023 -0600
more debugging improvements
Signed-off-by: Jeff Carr <[email protected]>
commit b86f145f0252e7545b2e7fa78e1d5960cacb7bad
Author: Jeff Carr <[email protected]>
Date: Fri Mar 10 03:42:32 2023 -0600
set margin on tab's works
Signed-off-by: Jeff Carr <[email protected]>
commit d2218c08cf44acd5f017a8faa1439ee6d2fd46d5
Author: Jeff Carr <[email protected]>
Date: Thu Mar 9 16:26:21 2023 -0600
ignore all *.so files
Signed-off-by: Jeff Carr <[email protected]>
commit e21934fff3cfea30b04df01bf0714f6927aa78f4
Author: Jeff Carr <[email protected]>
Date: Thu Mar 9 16:25:15 2023 -0600
can't embed the toolkit/*.so files here
Signed-off-by: Jeff Carr <[email protected]>
commit f1e6c5fc9c8ca36db3ad6109d64612b6850fa856
Author: Jeff Carr <[email protected]>
Date: Thu Mar 9 16:21:14 2023 -0600
andlabs group widget has Show() and Hide()
Signed-off-by: Jeff Carr <[email protected]>
commit e8487504aa76ca99c4891b777585a428fda0ef62
Author: Jeff Carr <[email protected]>
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 <[email protected]>
commit 3667940a77af4e3855facb9247771d595477302f
Author: Jeff Carr <[email protected]>
Date: Thu Mar 9 14:20:21 2023 -0600
fix SetText() on Label
Signed-off-by: Jeff Carr <[email protected]>
commit 311d6be66db84b63fb7124df64e2e9be0f0b76a4
Author: Jeff Carr <[email protected]>
Date: Thu Mar 9 14:06:46 2023 -0600
still compiles and runs
Signed-off-by: Jeff Carr <[email protected]>
commit ee4e9b21ef59a97f902c6dae2a57ac7b3063fe3b
Author: Jeff Carr <[email protected]>
Date: Thu Mar 9 11:02:34 2023 -0600
compiles
Signed-off-by: Jeff Carr <[email protected]>
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'toolkit/democui/log.go')
| -rw-r--r-- | toolkit/democui/log.go | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/toolkit/democui/log.go b/toolkit/democui/log.go new file mode 100644 index 0000000..afd1280 --- /dev/null +++ b/toolkit/democui/log.go @@ -0,0 +1,135 @@ +// +// version v1.3 +// +// I like things to be easy. +// +// combining logging inside of a gui made me do this +// +// this means all the log settings are in one place. it should allow +// things to be over-ridden externally to the library +// but still allow command line --args to pass debugging settings +// +// I also have a generic sleep() and exit() in here because it's simple +// +// Usage: +// +// log("something", foo, bar) +// var DEBUG bool = true +// log(DEBUG, "something else", someOtherVariable) # if DEBUG == false, return doing nothing +// log(SPEW, "something else", someOtherVariable) # this get's sent to spew.Dump(). Very useful for debugging! +// +package main + +import ( + "os" + golog "log" + "time" + "reflect" + "github.com/davecgh/go-spew/spew" +) + +var LOGOFF bool = false // turn this off, all logging stops +var WARN bool +var INFO bool + +type spewt struct { + a bool +} + +var SPEW spewt + + +/* + sleep() # you know what this does? sleeps for 1 second. yep. dump. easy. + sleep(.1) # you know what this does? yes, it sleeps for 1/10th of a second +*/ +func sleep(a ...any) { + if (a == nil) { + time.Sleep(time.Second) + return + } + + log(true, "sleep", a[0]) + + switch a[0].(type) { + case int: + time.Sleep(time.Duration(a[0].(int)) * time.Second) + case float64: + time.Sleep(time.Duration(a[0].(float64) * 1000) * time.Millisecond) + default: + log("sleep a[0], type = ", a[0], reflect.TypeOf(a[0])) + } +} + +/* + exit() # yep. exits. I guess everything must be fine + exit(3) # I guess 3 it is then + exit("dont like apples") # ok. I'll make a note of that +*/ +func exit(a ...any) { + log(true, "exit", a) + //if (a) { + // os.Exit(a) + //} + os.Exit(0) +} + +/* + I've spent, am spending, too much time thinking about 'logging'. 'log', 'logrus', 'zap', whatever. + I'm not twitter. i don't give a fuck about how many nanoseconds it takes to log. Anyway, this + implementation is probably faster than all of those because you just set one bool to FALSE + and it all stops. + Sometimes I need to capture to stdout, sometimes stdout can't + work because it doesn't exist for the user. This whole thing is a PITA. Then it's spread + over 8 million references in every .go file. I'm tapping out and putting + it in one place. here it is. Also, this makes having debug levels really fucking easy. + You can define whatever level of logging you want from anywhere (command line) etc. + + log() # doesn't do anything + log(stuff) # sends it to whatever log you define in a single place. here is the place +*/ + +func log(a ...any) { + if (LOGOFF) { + return + } + + if (a == nil) { + return + } + var tbool bool + if (reflect.TypeOf(a[0]) == reflect.TypeOf(tbool)) { + if (a[0] == false) { + return + } + a[0] = "GUI/Toolkit/gocui" + } + + if (reflect.TypeOf(a[0]) == reflect.TypeOf(SPEW)) { + // a = a[1:] + a[0] = "GUI/Toolkit/gocui" + if (debugToolkit) { + scs := spew.ConfigState{MaxDepth: 1} + scs.Dump(a) + // spew.Dump(a) + } + return + } + + golog.Println(a...) +} + +func logindent(depth int, format string, a ...interface{}) { + var tabs string + for i := 0; i < depth; i++ { + tabs = tabs + format + } + + // newFormat := tabs + strconv.Itoa(depth) + " " + format + newFormat := tabs + format + log(debugToolkit, newFormat, a) +} + +func setOutput(f *os.File) { + golog.SetOutput(f) +} |
