diff --git a/go.mod b/go.mod index 07f091d..16c080e 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,8 @@ module tildegit.org/sloum/gnums go 1.16 -require github.com/AllenDang/giu v0.5.4 +require ( + github.com/AllenDang/giu v0.5.5-0.20210618140556-043793d78478 + github.com/go-resty/resty/v2 v2.6.0 // indirect + golang.org/x/net v0.0.0-20210614182718-04defd469f4e // indirect +) diff --git a/go.sum b/go.sum index cadc62a..664b5e0 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,13 @@ github.com/AllenDang/giu v0.5.4 h1:OuSgcTZYH9buug1yWsJAvUr57aQwiJK7hjk+JYtv4tM= github.com/AllenDang/giu v0.5.4/go.mod h1:1CyOLkJREGGWFVx+p2z5+1KMhY3H7Zbl8gQ/huzThsI= +github.com/AllenDang/giu v0.5.5-0.20210618140556-043793d78478 h1:cJqc5MdsIzCh/xKIX/lwyCAJs/kgByO+2+RVdufrnJU= +github.com/AllenDang/giu v0.5.5-0.20210618140556-043793d78478/go.mod h1:mBndBoUtz/rB2cCVpEMeO+1TXYemYFokE/i/FTjPkUc= +github.com/AllenDang/go-findfont v0.0.0-20200702051237-9f180485aeb8 h1:dKZMqib/yUDoCFigmz2agG8geZ/e3iRq304/KJXqKyw= +github.com/AllenDang/go-findfont v0.0.0-20200702051237-9f180485aeb8/go.mod h1:b4uuDd0s6KRIPa84cEEchdQ9ICh7K0OryZHbSzMca9k= github.com/AllenDang/imgui-go v1.12.1-0.20210509113325-c0e4c78e7a88 h1:dXpshnNwPl+QjFOiJNFlQrtOz1oA565EO9FUseKvlhU= github.com/AllenDang/imgui-go v1.12.1-0.20210509113325-c0e4c78e7a88/go.mod h1:+pYwstqlGGlU2lI1FREPlVAKP2nwV+bNhAlMrbQynhQ= +github.com/AllenDang/imgui-go v1.12.1-0.20210617113257-a210d0333fc7 h1:Pk4JnlvVIHhE2TuLaCoJ3TtSDe+rEn7vdCD/rfoDwp8= +github.com/AllenDang/imgui-go v1.12.1-0.20210617113257-a210d0333fc7/go.mod h1:+pYwstqlGGlU2lI1FREPlVAKP2nwV+bNhAlMrbQynhQ= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/faiface/mainthread v0.0.0-20171120011319-8b78f0a41ae3 h1:baVdMKlASEHrj19iqjARrPbaRisD7EuZEVJj6ZMLl1Q= @@ -13,17 +19,32 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb h1:T6gaWBvRzJ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-resty/resty/v2 v2.3.0 h1:JOOeAvjSlapTT92p8xiS19Zxev1neGikoHsXJeOq8So= github.com/go-resty/resty/v2 v2.3.0/go.mod h1:UpN9CgLZNsv4e9XG50UU8xdI0F43UQ4HmxLBDwaroHU= +github.com/go-resty/resty/v2 v2.6.0 h1:joIR5PNLM2EFqqESUjCMGXrWmXNHEU9CEiK813oKYS4= +github.com/go-resty/resty/v2 v2.6.0/go.mod h1:PwvJS6hvaPkjtjNg9ph+VrSD92bi5Zq73w/BIH7cC3Q= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI= +github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/net v0.0.0-20200513185701-a91f0712d120 h1:EZ3cVSzKOlJxAd8e8YAJ7no8nNypTxexh/YE/xW3ZEY= golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/main.go b/main.go index a66ef7a..c29bba5 100644 --- a/main.go +++ b/main.go @@ -9,7 +9,7 @@ import ( ) const ( - MasterWidth int = 376 + MasterWidth int = 382 Version string = "0.1.1" FullStack int = iota TopThree @@ -135,6 +135,14 @@ func SetStackLabelWithSort() { stackLabel = g.Label(fmt.Sprintf("Stack Output\n[d]{%s}", sort)) } +func ToggleScreenSize() { + width := MasterWidth + if ShowStack { + width = MasterWidth + MasterWidth / 2 + } + wnd.SetSize(width,400) +} + func loop() { g.SingleWindowWithMenuBar("gnums - " + Version).Layout( g.MenuBar().Layout( @@ -147,12 +155,7 @@ func loop() { g.MenuItem("Clear Stack"), ), g.Menu("Settings").Layout( - g.Checkbox("Show Stack Window", &ShowStack).OnChange(func(){ - width := MasterWidth - if ShowStack { - width = MasterWidth + MasterWidth / 2 - } - wnd.SetSize(width,400)}), + g.Checkbox("Show Stack Window", &ShowStack).OnChange(ToggleScreenSize), g.Menu("Output Style").Layout( g.RadioButton("Full Stack", stackStyle == FullStack).OnChange(func(){stackStyle = FullStack; outputDisplay = s.String()}), g.RadioButton("Top Three", stackStyle == TopThree).OnChange(func(){stackStyle = TopThree; outputDisplay = s.String()}), @@ -272,6 +275,29 @@ func Exit() { } func main() { - wnd = g.NewMasterWindow("gnums", MasterWidth+MasterWidth/2, 390, g.MasterWindowFlagsNotResizable, nil) + wnd = g.NewMasterWindow("gnums", MasterWidth+MasterWidth/2, 405, g.MasterWindowFlagsNotResizable).RegisterKeyboardShortcuts( + g.WindowShortcut{Key: g.KeyQ, Modifier: g.ModControl, Callback: Exit}, + g.WindowShortcut{Key: g.Key0, Callback: func(){inputBuffer.Append('0')}}, + g.WindowShortcut{Key: g.Key1, Callback: func(){inputBuffer.Append('1')}}, + g.WindowShortcut{Key: g.Key2, Callback: func(){inputBuffer.Append('2')}}, + g.WindowShortcut{Key: g.Key3, Callback: func(){inputBuffer.Append('3')}}, + g.WindowShortcut{Key: g.Key4, Callback: func(){inputBuffer.Append('4')}}, + g.WindowShortcut{Key: g.Key5, Callback: func(){inputBuffer.Append('5')}}, + g.WindowShortcut{Key: g.Key6, Callback: func(){inputBuffer.Append('6')}}, + g.WindowShortcut{Key: g.Key7, Callback: func(){inputBuffer.Append('7')}}, + g.WindowShortcut{Key: g.Key8, Callback: func(){inputBuffer.Append('8')}}, + g.WindowShortcut{Key: g.Key9, Callback: func(){inputBuffer.Append('9')}}, + g.WindowShortcut{Key: g.KeyPeriod, Callback: func(){inputBuffer.Append('.')}}, + g.WindowShortcut{Key: g.KeyMinus, Callback: func(){callStackWord(s.Sub)}}, + g.WindowShortcut{Key: g.KeyEqual, Modifier: g.ModShift, Callback: func(){callStackWord(s.Add)}}, + g.WindowShortcut{Key: g.Key8, Modifier: g.ModShift, Callback: func(){callStackWord(s.Mul)}}, + g.WindowShortcut{Key: g.KeySlash, Callback: func(){callStackWord(s.Div)}}, + g.WindowShortcut{Key: g.Key6, Modifier: g.ModShift, Callback: func(){callStackWord(s.Pow)}}, + g.WindowShortcut{Key: g.KeyEnter, Callback: func(){inputBuffer.Store(); outputDisplay = s.String()}}, + g.WindowShortcut{Key: g.KeySpace, Callback: func(){ShowStack = !ShowStack; ToggleScreenSize()}}, + g.WindowShortcut{Key: g.KeyEscape, Callback: func(){callStackWord(s.Clear)}}, + g.WindowShortcut{Key: g.Key1, Modifier: g.ModShift, Callback: func(){callStackWord(s.Inv)}}, + g.WindowShortcut{Key: g.KeyBackspace, Callback: func(){inputBuffer.Delete()}}, + ) wnd.Run(loop) }