Commit Graph

124 Commits

Author SHA1 Message Date
Jeff Carr 6f1a7e9257 move to "gui/widget"
Signed-off-by: Jeff Carr <jcarr@wit.com>
2024-01-05 13:18:44 -06:00
Jeff Carr 80d0f34bc0 Tabs are Windows
Tabs don't exist. The are simply windows within a window.
        There are *lots* of problems with trying to treat everything
        that way. Luckily, we don't have to care. All the problems with
        handling that concept can be pushed to the toolkits/
        therefore, this primitive code can be kept as clean as possible
    Makefile and git cleanups

Signed-off-by: Jeff Carr <jcarr@wit.com>
2024-01-05 12:46:17 -06:00
Jeff Carr dbbdb953f2 complete the move to 'go.wit.com/log'
Signed-off-by: Jeff Carr <jcarr@wit.com>
2024-01-03 18:54:08 -06:00
Jeff Carr d1d9c20168 reorg to final resting place at go.wit.com/gui/gui
Signed-off-by: Jeff Carr <jcarr@wit.com>
2024-01-01 15:43:50 -06:00
Jeff Carr 606f9d5ec0 continue move to remove tabs
Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-12-31 07:40:53 -06:00
Jeff Carr 7313c83e69 save 'universal' go-arg
Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-12-29 09:24:06 -06:00
Jeff Carr 01ab0180f4 add 'gadgets'
attempt func (n *gui.Node) blah() definition
    better docs for pkg.go.dev
    how logging should work
    fix syntax links for pkg.go.dev

Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-12-29 03:00:03 -06:00
Jeff Carr 4888500f3f move to go.wit.com/gui
Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-12-20 14:15:00 -06:00
Jeff Carr fe6a8dd969 gocui plugin refactor to a *node binary tree
rename arg '--gui <toolkit>'
    add a cloudflare example
    fixes since go v1.21 didn't compile anymore due to argv order
    more place() changes
    recursive size computation

    gocui: Major refactor to use the *node binary tree
    gocui: refactor place() and size()
    gocui: better place() and spacing (tab, buttons, etc)
    gocui: better mouse click handling
    gocui: switch to using tk.gocuiSize & tk.size
    gocui: event handling cleanups
    gocui: add window labels work
    gocui: struct cleanups
    gocui: duplicate binary tree structs removed
    gocui: deprecate old children

Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-12-02 19:02:51 -06:00
Jeff Carr 603d5ba7de andlabs: debugging flags working again
Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-05-10 14:28:30 -05:00
Jeff Carr d861dade77 start correctly handling grid placement
Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-05-09 17:48:21 -05:00
Jeff Carr 14f69c4a40 s/Config/me/ to remove direct access to anything
since most everything needs to be passed to the toolkits
everything should be accessed via func()'s

Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-04-28 10:35:57 -05:00
Jeff Carr a132b48ada further code cleanups
Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-04-28 10:30:27 -05:00
Jeff Carr ed7becf5ee allow passing of embed plugin files
Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-04-28 07:29:46 -05:00
Jeff Carr dc7762fc16 gocui: grid width fixed
Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-04-27 20:41:53 -05:00
Jeff Carr 1986bd286d actually ran again without crashing
Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-04-23 07:37:24 -05:00
Jeff Carr 5d032e68eb start work on a plugin channel
Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-04-07 21:22:51 -05:00
Jeff Carr bddce3d5a3 gocui: callbacks work via a channel
Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-04-06 18:00:18 -05:00
Jeff Carr b99e4425fa add semi-working gocui
commit 947169df5a22c9f9b53f825764747f648c70ff1e
Author: Jeff Carr <jcarr@wit.com>
Date:   Wed Mar 29 22:44:08 2023 -0500

    ready for version v0.7.4

        start deprecating toolkit.Widget
        switch to variable name 'ParentId'
        use 'ActionType' and 'WidgetType'
        preliminary redraw()
        final definition of variables 'Name' and 'Text'
        more cleaning of the code
        remove lots of dumb code
        bind 'd' key press to dump out debugging info
        early color handling in gocui!

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit 6013fde8332e8ecbffaf1a0977ba2e1da8ea8775
Author: Jeff Carr <jcarr@wit.com>
Date:   Sun Mar 26 17:19:20 2023 -0500

    improvements towards a working dns control panel

        democui has the help menu
        try to add mouse support to gocui
        make a direct access method
        Margin() and Pad() tests
        add SPEW
        also push devel branch to github

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit 6f91f5e080e06cdc0f34b13d23e5fd16ea37259a
Author: Jeff Carr <jcarr@wit.com>
Date:   Fri Mar 24 20:14:18 2023 -0500

    starting to try safe chan and goroutines

        fix tab title's
        right before attempting to add chan goroutines
        removed "where" widget pointer
        box added to tab
        experiement with log as it's own repo

    Signed-off-by: Jeff Carr <jcarr@wit.com>

Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-03-29 23:03:04 -05:00
Jeff Carr fa356841bf Squashed commit of the following:
boxes now exist and are tracked in the binary tree
    create for group and grid works
    gocui plugin no longer works. TODO: fix in next release
    converted everything from plugin to Action()
        can remove send()
        tab and window are now action()
        flags moved to action()
    ready for new release
    pad() margion() border() all work
    move worked!
    go.wit.com attept 578th try
    adds an early grid widget. won't work until chan
        andlabs/ui grid (X,Y) works right
        actually can put things in places in a grid
        Queue() means shit doesn't look right on grids
    lots of fucking around. why am I wasting time on image?
    wow. the crazy doAppend() thing is gone
    implement Action Show() and Hide()

Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-03-23 12:35:12 -05:00
Jeff Carr 9223ff18a2 Squashed commit of the following:
commit 448abc843e2241bab6c399f7a836dccba1defc18
Author: Jeff Carr <jcarr@wit.com>
Date:   Sun Mar 12 08:35:28 2023 -0500

    this should probably be a new release now

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit a4064f7a6c5ac67437768aa2bc67c75dafc91c4c
Author: Jeff Carr <jcarr@wit.com>
Date:   Sat Mar 11 03:18:23 2023 -0600

    able to work on add 'Box' and play with 'Image'

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit 6e59573d85e82ecb005805f50711dddc2df50480
Author: Jeff Carr <jcarr@wit.com>
Date:   Sat Mar 11 03:04:34 2023 -0600

    rearrange widget debugging

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit e0570de75c6eb1b4f49e541d9ef5d83ae4434d3d
Author: Jeff Carr <jcarr@wit.com>
Date:   Sat Mar 11 02:29:20 2023 -0600

    debugging is lots smarter

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit ece32a1e43d91cd197d0a8497ad2f034c46126e1
Author: Jeff Carr <jcarr@wit.com>
Date:   Fri Mar 10 21:38:23 2023 -0600

    first pass on a node delete

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit c91cb0eddb0f73f8dea9b21a16cd76c7e2c19a33
Author: Jeff Carr <jcarr@wit.com>
Date:   Fri Mar 10 21:06:29 2023 -0600

    can recreate window list

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit 470f9dc26aefd3626b319264fe151aa48d4d5377
Author: Jeff Carr <jcarr@wit.com>
Date:   Fri Mar 10 12:07:34 2023 -0600

    attempt to ressurect mouse in the console plugin

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit 747bb53e06dda458cc8cd77b665f4d9d07f5e925
Author: Jeff Carr <jcarr@wit.com>
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 <jcarr@wit.com>

commit 9283c65c8e9b8d2630b251ad952b6b52caddb307
Author: Jeff Carr <jcarr@wit.com>
Date:   Fri Mar 10 07:26:53 2023 -0600

    show/hide/etc for window widgets

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit 5724cd7ffd8595ae049a7c9c21cb2f1a993c4b76
Author: Jeff Carr <jcarr@wit.com>
Date:   Fri Mar 10 06:40:36 2023 -0600

    compiles and runs

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit 44a5e69ce17cb506adfe24ca72cc86caa9ebcc70
Author: Jeff Carr <jcarr@wit.com>
Date:   Fri Mar 10 05:57:15 2023 -0600

    more debugging improvements

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit b86f145f0252e7545b2e7fa78e1d5960cacb7bad
Author: Jeff Carr <jcarr@wit.com>
Date:   Fri Mar 10 03:42:32 2023 -0600

    set margin on tab's works

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit d2218c08cf44acd5f017a8faa1439ee6d2fd46d5
Author: Jeff Carr <jcarr@wit.com>
Date:   Thu Mar 9 16:26:21 2023 -0600

    ignore all *.so files

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit e21934fff3cfea30b04df01bf0714f6927aa78f4
Author: Jeff Carr <jcarr@wit.com>
Date:   Thu Mar 9 16:25:15 2023 -0600

    can't embed the toolkit/*.so files here

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit f1e6c5fc9c8ca36db3ad6109d64612b6850fa856
Author: Jeff Carr <jcarr@wit.com>
Date:   Thu Mar 9 16:21:14 2023 -0600

    andlabs group widget has Show() and Hide()

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit e8487504aa76ca99c4891b777585a428fda0ef62
Author: Jeff Carr <jcarr@wit.com>
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 <jcarr@wit.com>

commit 3667940a77af4e3855facb9247771d595477302f
Author: Jeff Carr <jcarr@wit.com>
Date:   Thu Mar 9 14:20:21 2023 -0600

    fix SetText() on Label

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit 311d6be66db84b63fb7124df64e2e9be0f0b76a4
Author: Jeff Carr <jcarr@wit.com>
Date:   Thu Mar 9 14:06:46 2023 -0600

    still compiles and runs

    Signed-off-by: Jeff Carr <jcarr@wit.com>

commit ee4e9b21ef59a97f902c6dae2a57ac7b3063fe3b
Author: Jeff Carr <jcarr@wit.com>
Date:   Thu Mar 9 11:02:34 2023 -0600

    compiles

    Signed-off-by: Jeff Carr <jcarr@wit.com>

Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-03-12 08:47:16 -05:00
Jeff Carr 7d1836390a release as v0.6.5
good standard release
    really clean interaction to plugin
    really clean debug flags implementation
    common doAppend() idea, but it probably won't work
    re-implement combobox. this code base almost doesn't suck
    slider & spinner set values now
    tab set margin works
    convert dropdown to Send()
    lots of other changes to try to implement single line Entry()
    I guess use golang file names even though internalally the go developers
    use underscore chars in the actual go sources.
        Maybe there is a reason for that?
    go channel debug window does something
    make a debug window for channels. add sample icons

Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-03-03 14:41:38 -06:00
Jeff Carr 6196739d82 lots cleaner code between the plugin
Queue() around SetText is helping userspace crashing
    merge forceDump(bool) into Dump()
    debugging output configuration is pretty clean
    keep cutting down duplicate things
    --gui-verbose flag works
    make label "standard" code
    add debug.FreeOSMemory()
    move the GO language internals to display in the GUI
    update push to do tags and go to github.com/wit-go/
    remove the other license file
        it might be confusing golang.org and github
    proper WidgetType
    added a Quit() button

Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-03-01 11:35:36 -06:00
Jeff Carr 053ea69885 The debugging window is finally useful
the gui enabled debugging works
        --gui-debug works from the command line
        The debug window can now select things
        debugging now includes widget types
        all the debug flags work
        finally working debugging flags via gui checkboxes
    add debian packaging rules
    use log() in the toolkit
    use a standard log() to simplify debugging flags
    add reference to 'GO Style Guide'
    use the same LICENSE from the GO developers.
    TODO: make this threadsafe
    TODO: fix plugin stuff

Signed-off-by: Jeff Carr <jcarr@wit.com>
2023-02-25 14:05:25 -06:00
Jeff Carr 4242393152 setup building without plugins on windows
notes from github remote
keep removing os.Exit()
rename from andlabs2 back to andlabs
rename files for windows andlabs/ui
gocui always sets STDOUT a file in /tmp/

Signed-off-by: Jeff Carr <jcarr@wit.com>
2022-11-14 14:30:28 -06:00
Jeff Carr 8221522ba8 Massive refactor to use go plugins. This is neat.
update README.md
    set xterm title. make os.Exit() default on window close
    add a toolkit.Widget to the node structure
    remove 'Greeter' symbol mapping scheme
    removed the testing greeter code
    plugins:
        attempt to load plugins in a sensible order
    andlabs/ui:
        working andlabs/ui plugin (andlabs2)
   	buttons work in andlabs plugin
	TODO: re-implement non-plugin version for Windows
		mswindows doesn't support go plugins yet
    gocui:
        put the gocui console so file in the binary
        does a full init of gocui plugin
        Button() and Group() working very well with gogui
    	cleanly exit gocui
    technically you can load two toolkits at the same time
        kinda both working at the same time. esoteric
        two working plugins at the same time
        give up working on two gui's at the same time
        this is fun, but _not interesting
        wow. this actually works. NewButton() from both toolkits
    examples:
        all the examples run again
        remove early helloplugin example
        buttonplugin example cmd code
        buttonplugin runs and ldd is minimum

Signed-off-by: Jeff Carr <jcarr@wit.com>
2022-11-13 08:53:03 -06:00
Jeff Carr 06237c36fa cleanup of the example commands. more plugin work
add a button in two plugins at the same time!
        added a button in andlabs/ui & gocui
    attempt a common widget struct between wit/gui & the plugins
    start handling missing plugins
    rename Makefile command examples
    remote examples used for testing
    filename improvements
    golang src code uses lowercase and _ in filenames
    fix crash when button click function == nil
    fix wrong name 'gocli' -> 'gocui'
    keep fighting with goreadme generated README.md

Signed-off-by: Jeff Carr <jcarr@wit.com>
2022-11-09 08:38:50 -06:00
Jeff Carr c43a684857 Implement a early AddButton() via a golang plugin
pass a name to gocui.AddButton()
    cleaner plugin usage
    add the start to golang plugin
    plugin stuff in a single file
    added a button correctly
    andlabs/ui added a button via plugin to gocli
  	  hot diggity!
    trying to invoke a gocli plugin function from the andlabs ui
    load the plugin
    hide more debugging output
    turn off all output

Signed-off-by: Jeff Carr <jcarr@wit.com>
2022-11-06 19:57:20 -06:00
Jeff Carr 482c3ef8eb start trying to make the tookits plugins
totally minimize helloworld demo
    try to make a button plugin example
    debug changes
    final changes before attempting to use a golang plugin
    actually running gocui as a plugin
    add gocli-as-plugin example
    try to convert the go-cui toolkit into a plugin
    doc updates
    make a minimal console gui

Signed-off-by: Jeff Carr <jcarr@wit.com>
2022-11-06 12:59:24 -06:00
Jeff Carr 5417c8f477 v0.4.2 more code cleanups and improvements
Add command line argv handling using go-arg
    make hello world dumb stupid simple again
    more swtiching to common code
    move debugging options to support go-args
    more debugging output cleanup
    more debugging cleanups
    fix null pointer crash
2022-11-05 10:19:04 -05:00
Jeff Carr c5735353a6 v0.4.1 set sane toolkit default look and feel
autogenerate README.md from doc.go (goreadme cmd)
    remove passing arguements on a mouse click()
    make defaults for padding, margin, stretchy, etc
    add a checkbox widget
    function rename to NewButton()
    keep cleaning up toolkit code
    fix date. I was somehow in the future

Signed-off-by: Jeff Carr <jcarr@wit.com>
2022-10-21 11:40:08 -05:00
Jeff Carr d28f0eb8c1 Squashed commit of the following:
all non binary tree structs are gone (almost all)
    Use names from https://en.wikipedia.org/wiki/Graphical_widget
    toolkit andlabs/ui is isolated from being accessable
        all direct references to andlabs are removed
    working dropdown widgets
    add debugging more buttons and windows
2022-10-20 06:55:42 -05:00
Jeff Carr fbf97443d5 Add slander and spinbox in toolkit/andlabs
fix the helloworld demo
    move slider into toolkit/
    move more into the toolkit directory
    add spinbox()
    fix example
    minor update
    fix examples
    Fix andlabs.ui.Slider() to work again
    correctly implement custom OnChange() callback

Signed-off-by: Jeff Carr <jcarr@wit.com>
2022-10-16 08:07:13 -05:00
Jeff Carr 390556e083 Change Node to Box 2022-10-11 11:25:46 -05:00
Jeff Carr c91d7d52b8 SMALL: some stuff hanging around
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-11-04 05:46:49 -05:00
Jeff Carr 2af6db4d6c GOOD: use global 'Stretchy' setting
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-11-04 02:23:41 -05:00
Jeff Carr 898874b0e9 CLEAN: out of the rabbit hole
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-11-01 00:24:56 -05:00
Jeff Carr 8c1c837879 CLEAN: remove GuiButton struct 2021-10-31 23:48:34 -05:00
Jeff Carr 51d324e805 CLEAN: more code removals
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-10-31 22:22:16 -05:00
Jeff Carr db6c60decc REFACTOR: remove GuiWindow & GuiBox
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-10-31 21:46:30 -05:00
Jeff Carr d6980daa81 BOX: kill GuiBox
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-10-31 21:07:36 -05:00
Jeff Carr ad3a955750 BOX: remove GuiBox
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-10-31 20:22:36 -05:00
Jeff Carr f7ead697d3 REFACTOR: refactor everything to gui.Node struct
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-10-31 14:21:36 -05:00
Jeff Carr 2ccc1b518d REFACTOR: things are back to working as they were
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-10-06 14:32:07 -05:00
Jeff Carr 908615c038 TAB: correctly lookup and add tabs to blank windows
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-10-06 13:23:00 -05:00
Jeff Carr b4a11c0aa1 CODE: start a general code refactor
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-10-06 08:36:28 -05:00
Jeff Carr cabdb12495 BUILD: suck it up and try to use go.mod
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-10-06 05:14:24 -05:00
Jeff Carr ccb91460ca BUG: fix potential 'nil' reference
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-10-05 10:23:27 -05:00
Jeff Carr 6438e4cc6a CODE: not sure, but it compiles and runs somehow
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-10-05 09:29:55 -05:00
Jeff Carr 6035dc8d79 DEBUG: added button to SetMargin() by name
Signed-off-by: Jeff Carr <jcarr@wit.com>
2021-10-05 07:13:24 -05:00