standard gui in of 007?

Oh, sorry, I think I made it sound like I was actually doing something or that there was something heavy going on (which there isn’t). It’s just something that I saw Theo posted on his github acct, that I think he’s working it out. But maybe we could you could just keep track on this thread I suppose. My wants would be:

Loading/Saving
multiple panels possible
simple components: slider, checkboxes, maybe 2d trackpads.
coloring/font-size options.

My biggest ‘want’ (aside from the usual) would be skinning. Basically allow all the elements a texture or ofImage. Most of the ofxGUIxxxx seem to have similar functionality, but none are skinable with OF components. That would allow for devs to pick their look and then wouldn’t need to try and please everyone with an openGL design.

I’m also interested in “the discussion” :slight_smile:
so does OF has another channel to “discuss”, like a (dev-)mailinglist or something else?
I would love to see the development of OF get a little bit more transparent and open. I will not blame anyone but I think a lot of people are interested in when/what/how/why things happen in the OF development, including me. :slight_smile:

My suggestion for panel is: there should be a possibility to use the panel parts as much generic as possible. I’m thinking of something like spawning gui element which is not bound to something like a “panel” or something like that.
The second thing to archive this is that the elements should modify values by reference. So I can create my Gui Elements somewhere and bind references to vars around my app (I think Memos SimpleGui does this quite well (but is bound strict to panel/columns))

Overall I would say: Lets make the panel as much reusable as possible.

I’m not aware of a dev mailing list or somesuch (which doesn’t mean it doesn’t exist). I can echo the wish for more information flow regarding oF development. On the other hand, the devs get great work done in little time, maybe it’s good that there’s little outside involvement in policy/roadmap matters.

I’d like to see an easily extensible structure, so people could easily add elements or functionality they want/need, enabling the GUI to grow and mature over time.
Optimally, the design would be simple to use (for beginners and simple problems), but extensible enough for more complex stuff (events, interaction with protocols like midi and osc, transformable/dynamic layouts)

Element-wise, I’d like to see most elements from “classical” hardware interaction, i.e. sliders, pots, buttons/toggles, xy pads, grouped/multiple versions of those (to e.g. easily assemble fader banks or step sequencers). Elements which often seems to be lacking in current GUI implementations, and which I find quite important is dynamically changeable labels for GUI elements; the same, just without function (e.g. titlebars for groups); and editable text entry boxes.

Regarding cerupcat’s skinning wish, I’d like to see configuration options to easily adjust the look of the GUI. SimpleGuiToo already is quite nice with the configuration file. Ideally, I would like to see most of the configuration collected in an xml file, for changing configuration without recompiling.
I have to try out ofxcontrolpanel these days…

hope all that makes sense, i’m half asleep already… :stuck_out_tongue:

OK, so according to kylemacdonald https://github.com/openframeworks/openFrameworks/pull/614

the idea behind ofGui is to have a super minimal gui that’s good enough for the examples that come with OF. for something more extensible/full featured, there are already a few guis out there like ofxControlPanel and ofxSimpleGui/Too.

So we can stop collecting feature wishes, or maybe redirect them to one of the other GUIs. :-\

@benben - really, everything that’s happening is transparent on github: https://github.com/openframeworks/openFrameworks that’s where all the action is :slight_smile:

@bilderbuchi - yeah, sorry, i just meant suggestions for barebones functionality. i think that the default should a really simple, stripped down thing. something more full-featured is still to be determined I think. Making a skinnable GUI is a ton of work and I’m not sure how best to even approach it :confused:

I think because there’s 3-6 ofxGUI type addons out there, it makes sense to start discussing features for either an “official” one, or one that everyone can work towards together (instead of reinventing the wheel). Most of the features mentioned above I think are in the majority of the addons, but no one addon has them all.

github isn’t really transparent in terms of what the roadmap or plans are. It may be to a small extent, but a real discussion and official statements that aren’t geared towards only core developers (which github really is) would benefit all users; not everyone can keep up with all the commits and issues on github as a source of what’s going. A bi-weekly, monthly, or even bi-monthly report would be enough. Having a plain text discussion like we are now is more effective in laying out what is/isn’t/will happen now and in the future and how people can better contribute to things like a GUI. That’s just my .00005 cents.

With that said, how do we think is best to move forward? Collect feature requests and see which GUIs have these features already to form a basis? I imagine one of the addons already out there could be reworked or extended to supply the idea functionality people would like. Do we have a list of all ofxGUI type addons out there?

Maybe we should split this off into an official thread, but here’s some links:

GUI wish list: http://forum.openframeworks.cc/t/gui-wish-list/461/0
Different GUIs for OF: http://forum.openframeworks.cc/t/different-guis-for-openframeworks/4376/0

GUI Code:

GUI Addons:

ofxGUI: (http://github.com/bilderbuchi/ofxGui)
ofxSimpleGui: http://forum.openframeworks.cc/t/ofxsimplegui—the-world-simplest-gui/1111/0
ofxSimpleGuiToo: (http://github.com/memo/msalibs)
ofxVideoGrabber (it also contains a GUI): (also at http://github.com/memo/msalibs)
ofxControlPanel: http://github.com/ofTheo/ofxControlPanel/
ofxWidgets: http://github.com/arturoc/ofxWidgets
ofxBlackBox: https://github.com/patriciogonzalezvivo/ofxBlackBox

Possible options for vector skinning ofxSVG: http://forum.openframeworks.cc/t/ofxsvg-/3250/0

[quote=“joshuajnoble, post:15, topic:5646”]
@benben - really, everything that’s happening is transparent on github: https://github.com/openframeworks/openFrameworks that’s where all the action is :)[/quote]
well, this comment by kylemcdonald mentions a “list”, so i suspect there’s a dev mailing list somewhere in the background after all. https://github.com/openframeworks/openFrameworks/pull/608#commitcomment-446503
plus, reading all the commit notes (yeah i do that) on github doesn’t tell you a thing about where all this is going, what devs think about certain features, etc. all you can do is infer/guess things, e.g. from vague hints about official gui modules, either in commit notes, github issues, or scarce posts (except arturo) on here.

Regarding GUI’s, I’m with Seth somehow. Having a barebones GUI makes total sense, but in addition I would also like to see _one_ “complex” modular GUI everybody could code towards. This way, people could think about concepts/mockups/etc. and invest energy and effort usefully.

Like it’s happening now, Memo spent loads of time on a GUI, then nothing happens anymore (due to time constraints probably). The in-progress rework he told me about never materialized on github. Theo has his own module, nothing much happening nowadays. I host a piece of age old code which would have otherwise been lost deep in the forums or wherever, but I’ve never really understood it and therefore can’t/won’t extend or maintain it. Arturo also started his own thing, last commits in Sept’10.
All in all, I think everybody concentrating on one or two extensions, and handing off maintaining/improving it to other people working on it if necessary would seriously improve the situation regarding dead GUI addons. After all, what more do we need than one simple implementation (ofGUI?) for beginners and examples, and one modular (for speed probably) fully fledged implementation (“ofGUIPlus”?) for advanced needs?

Seth, I’m quite confident that the thread “Different GUIs for OF” you linked is the most comprehensive and current list of GUI modules available.

I, too, think it would be best to form up a brainstorm/list of features/UI concept people would like to see (where/how is the best way to do that?), and assess the current GUIs regarding their capabilities/issues. Maybe try to get the input of the authors of those GUI addons to share some insight/opinions, they’re the most qualified for that after all.
On the other hand, I’m not sure how worthwhile doing this really is without some input from the devs, and without making sure our input is in fact appreciated. I mean, we can draft up pipe dreams all day long, to maybe have them tell us after a while that everything had been planned all along, and is in fact nearly finished (but not on github, so nobody knows about it), just totally different from what we envisioned…

Me personally, I’ll try to take a look at ofxcontrolpanel soon and try to get a feel of what it can do.

[quote=“Seth (cerupcat), post:16, topic:5646”]
github isn’t really transparent in terms of what the roadmap or plans are. It may be to a small extent, but a real discussion and official statements that aren’t geared towards only core developers (which github really is) would benefit all users; not everyone can keep up with all the commits and issues on github as a source of what’s going. A bi-weekly, monthly, or even bi-monthly report would be enough. Having a plain text discussion like we are now is more effective in laying out what is/isn’t/will happen now and in the future and how people can better contribute to things like a GUI. That’s just my .00005 cents.[/quote]

after my post I felt a little bit stupid, but this is exactly what I want to say. on github you can only get the product, the output after everything is decided. so I think with the MIT-License OF is a real free app and luckily so many people built so many cool things with it. Especially when you do commercial things (or like me diploma thesis) with OF it would be better to have a more reliable and transparent view on OF and where it will go, to push things forward.

@benben I’d agree with this and I didn’t mean to make you feel dumb :slight_smile: I think OF needs a little bit better communication about what’s going on, more frequent releases and announcements, BUT, and this is a big BUT, everything is being done by people in their free time and it’s being developed by a lot of people. There’s no one really in charge and there’s not always a really clear roadmap, though I know one got set out before the OF Dev conference earlier this year, I’m not sure where that is now. Instead it’s just: “I made this when I needed it and now we can put it into OF”. One of the strengths of having a lot of people make contributions is that you get a lot of different ideas about what needs to be added and where things can go. If you’ve got an idea, I’d say: give it a try and see where it goes. That can mean either making your own from scratch or forking someone elses code on github and extending it. You’re file bug reports and change requests and that’s awesome, I think everything should be and by and large is being run on github.

@seth The ofGuiPlus is an awesome idea :slight_smile: Agreed on the “what’s going on”, however, I think for a long time there just wasn’t much “going on”, hence the silence.

I didn’t mean to hint or anything about an official gui. I just asked what people thought “an official one would/should look like”. I thought it should be simple and just for use in the examples and stuff that I have to put into my book, and before I could do anything else, Theo made one and that it’s pretty rad.

In the interest of making a skinnable GUI I’ve started this: https://github.com/joshuajnoble/ofxSimpleGuiToo

Right now you can just skin the buttons and it’s just a very simple start, but I’d love to see people take it and run with it. I’ll be trying to build it up when I get time over the next week or so.

nice. is that a fork of memo’s? if so, why don’t i see that in github? shouldn’t you give it a different name then?

It’s not a fork of memos because I didn’t want to fork the entire MSAlibs project, which I know is a little wonky, but I’m only working with that part of it. It didn’t seem right to change the name since it’s Memos, not mine, plus I’m trying to keep the number of OF gui projects down :slight_smile:

ah ic. yeah you’re probably right about the name :D. shame github can’t fork subdirectories…

I took a quick look at Theo’s ofxControlPanel. What I like about it (from what I can tell) is
The way GUI elements can be adressed… gui.setValueB(“GRAB_BACKGROUND”, false); That’s a bit more intuitive for me.
Easily changeable labels for GUI elements.
That the default/automatic layout can be overridden.
Selectable text (although this seems to be mid-implementation).

Looks like a great start to skinning joshua! Can’t wait to try it out soon.

I think since OF is starting to move towards more OS (iOS/Android/Desktop) that skinning will really help let people create quality design without having to use native GUI controls (which is very timely if porting to multiple platforms). Prior to the mobile development, OF GUIs were more used as controls and therefore the design wasn’t really central to the quality of the application; however, I think that’s changing as more people are using it to develop for mobile (and GUI design is more important there).

SuperCollider are currently looking for a new unified GUI design, I think it’s worth it taking a look:
description: http://supercollider.sourceforge.net/wiki/index.php/GUI-Design-project
necessary GUI elements: http://www.flickr.com/photos/55063999@N03/5110498719/in/pool-1575422@N22/
GUI design guidelines: http://supercollider.sourceforge.net/wiki/index.php/SuperCollider-GUI-Design-Guidelines
discussion thread in their dev mailing list: http://new-supercollider-mailing-lists-forums-use-these.2681727.n2.nabble.com/Re-Re-sc-dev-GUI-Design-Project-td5936462.html

Looking through the list and downloading the code from GitHub (wish i had that list last week!) it’s interesting to see that not only are all the “widgets” pretty much the same (slider, toggle etc) but also the design steps taken are very similar too.

Of course there are differences in approach but mainly they are the same.

Maybe writing your own GUI for OF is a sort of rite of passage, certainly writing one involves many essential aspects of basic OF. But it eems that a simple GUI and then a full on GUI would be a good strategy. Maybe the full on GUI should be a bespoke OF design so that it sort of spreads the love of OF across the creative coding community and maybe even allows the public using these “installations” to see a familiar interface.

With regards to a more general comment on the GitHub discussion, i think the only issue is that there are lots of OF addons (and potential addons) without a central list (or wiki). Somewhere that you could quickly go to and search for whatever piece of code you need for OF. However in saying that lists and wiki’s do very quickly tend to be forgotten or lost in time…

Yeah, there was a directory once on the of homepage, but it’s heavily outdated. A centralized, maintained list of addons would definitely be nice. however, most addons you can find by searching for what you want on the forum. luckily, in that regard, the community is not very fragmented. it can be difficult, though, to find the latest/most recent version if you can choose between code attached to forum posts, some abandoned google code projects, and stuff on github…

Maybe it would make sense to have a wiki page, everyone can edit and add his or her addon. Only problem is this page has to be really apparent and well known to make any sense, linked from the frontpage and addons forum section. But this is getting way off topic here, sorry about that…