golang-ui / nuklear

This project provides Go bindings for nuklear.h — a small ANSI C GUI library.
https://github.com/vurtun/nuklear
MIT License
1.58k stars 100 forks source link

Tables? :) #11

Open Fruchtgummi opened 7 years ago

Fruchtgummi commented 7 years ago

I have the possibility to use table? I can not find anything.

xlab commented 7 years ago

Hi! Please check out the answer there https://www.reddit.com/r/golang/comments/5mr70e/nuklear_gui_package_for_go_now_supports_various/dc6gyk5/

So far there is no table widget, although there is a grid. I guess a table can be made but I didn't look into it yet.

Fruchtgummi commented 7 years ago

Yes, a table is very important! It is the main problem of all GUI examples available for GO. We already are looking for a long time for something usable.

xlab commented 7 years ago

@Fruchtgummi if you share an abstract use case I could elaborate on this.

Fruchtgummi commented 7 years ago

I Like the Bootstrap-Table see https://github.com/wenzhixin/bootstrap-table

Windows-Form Table https://msdn.microsoft.com/en-ie/library/aa984314(v=vs.71).aspx

The Best is WPF-DataGrid? http://www.wpftutorial.net/DataGrid.html

Can nuclear the grid? Important is sorting, pagination, and rows with ID to record records of a row.

joeblew99 commented 7 years ago

hey.

I am looking into similar issues. I am intending to build up a GUI toolkit that is like Material Design. i knwo MD is not everyones cup of tea, but lots of users are already trained in it by using so many google products.

Also i used to design GUIs alot and part of the issue with GUI's is getting enough coverage of the expected UX patterns for that is general enough to be used on lots of projects. I believe this is one of the good things also about Material Design in that its general enough to be used for lots of things. In other works its like a Corporate iDentity kit (that they call it in graphic design) with attention to lots of sticky UX design questions. By having all these answered for you, you basically have your requirements and its just a matter of implementing them. Requirements that are correct is half the battle !

So if anyone else is interested in this please do let me know...

joeblew99 commented 7 years ago

here is a decent example

https://github.com/material-components/material-components-ios/tree/develop/components

There is also a web and android implementation, but i feel the IOS version sis the clearest one that give an actual api for help to think about what needs to be done to make a Material Design opengl based library.

xlab commented 7 years ago

@joeblew99 implementing material layouts is hard, be careful https://github.com/dskinner/material (discontinued)

joeblew99 commented 7 years ago

i know his project. I played with it 6 months ago. Yes it is hard i agree.

Let me state the the other reason for all this is because as a golang programmer i just want a write once run everywhere ability for the GUI, just like we have for golang. So you have to pick a UX / UI style, and MD is basically the onyl one that has made it to that point. At the moment the options are terrible:

Did you see his new project ? Its doing MD also with a new approach: https://github.com/dskinner/x

MD example, plus other there too. https://github.com/dskinner/x/tree/master/glw/example/glwidget

I am not sure where he is going with it yet. From what i can see he is trying to do a bring up that covers all the hard stuff where his old project failed from what i can see. Its also got libs designed for 2D and 3D too from what i can see. So he failed but he has a new attempt :) The code is very very readable too.

Also now there is some really nice redux libs in golang that can really made it easy to build GUI without the cognitive load. https://github.com/johnsiilver/boutique The docs are really well done. The coding style is nice and easy and scalable in terms of soze of a project. This design is such that a complex system with PUSH messaging is much easier to build. You can build a GUI on top of a CQRS style backend easiyl with htis approach.

Then there is the ability to also use the same code to make webgl / browser apps https://github.com/hajimehoshi/ebiten/tree/master/internal/opengl It has video and audio working too. It leverages gopherjs and webgl.

So its all getting there. I remember on reddit or some other forum when i raised this a year ago there were lots of gophers very much wanting this, and some wanting it MD based.

I am working on this 100% between other stuff and have one other guy working with me. You did the hard work on the low level stuff, so that less competent programmers like me and others can built on top. i ask if you can help support us ??

I have build custom UIs for years and i know i can do it in MD. There are great examples with MD Lite and others where you can look inside to see assets etc. There are perfect docs from google. Its doable ! Fine control is where the obstacle often is and with openGL we have fine fine control :)

I am still in two minds about nuklear. Have to say this. Its not that its bad, its more that its not easy to extend for gophers. If you dig into the code and try out Nuklear and Nucular on all desktops and mobiles you start to see how you need specific bits added to make the UX experience work (little things like the scroll speed needed to vary between platforms, or the way selecting text in a text box has to vary between platforms). These little UX things really destroy the usability experience and stops adoption. SO, pat of me thinks a more golang base allows us to overcome these little things more easily. Maybe there is slight runtime perf loss but i kind of think its ok.

Also as we all know with this approach there are no limits. You can have a project where you need Forms, 2D canvases (like your Teg workshop which is awesome) and 3d charts, models, etc, and you dont have to switch languages and approaches. Its compelling for me to know i dont hit a dead end - i can go all the way if needed on a project to raise it up to a very high standard.

Also i noticed vurtun has a new project. https://github.com/vurtun/quarks Again, it makes me scared to use it as i have not idea whats going on as there is not the adaptability of golang. Maybe its dumb.. just saying...

At the moment its me, another guy called alex who is a really good golang programmer and loves UI stuff and good to work with, and maybe you to help with the really low level stuff. What do you say ?