Canvas widgets: Difference between revisions

Jump to navigation Jump to search
m
Update forum links
m (→‎The Plan: fix spelling)
m (Update forum links)
Line 43: Line 43:
As of 08/2012, the event handling system is being worked on. Once that is completed, it should be possible to reimplement a dialog/xml parser which maps the various supported widgets ([[$FG_ROOT]]/Docs/README.gui) to new canvas widgets (button, checkbox, label, textbox etc), so that these can be implemented step by step in order to phase out PUI usage (which will also require re-implementing the current layout manager in Nasal).
As of 08/2012, the event handling system is being worked on. Once that is completed, it should be possible to reimplement a dialog/xml parser which maps the various supported widgets ([[$FG_ROOT]]/Docs/README.gui) to new canvas widgets (button, checkbox, label, textbox etc), so that these can be implemented step by step in order to phase out PUI usage (which will also require re-implementing the current layout manager in Nasal).


* '''TheTom''' (05/2013): "I'm still not completely sure how to implement the GUI, but currently I'm thinking of something similar to most available UI toolkits with mainly using images together with 9-scale/slicing. Theming would be possible by simply exchanging the images and/or modulate them with a color. For some icons/elements also SVG could be used, and maybe I'll implement the possibility to cache rendered images of SVG elements for faster rendering of them." [http://flightgear.org/forums/viewtopic.php?f=71&t=19850#p182509]
* '''TheTom''' (05/2013): "I'm still not completely sure how to implement the GUI, but currently I'm thinking of something similar to most available UI toolkits with mainly using images together with 9-scale/slicing. Theming would be possible by simply exchanging the images and/or modulate them with a color. For some icons/elements also SVG could be used, and maybe I'll implement the possibility to cache rendered images of SVG elements for faster rendering of them." [http://forum.flightgear.org/viewtopic.php?f=71&t=19850#p182509]
* '''TheTom''': (30/07/2012) I have now pushed some updates to my branch. It is now possible to create windows (texture rectangles) with just using the property tree and place a canvas texture onto it. Mouse events are passed to the active window (=the window the cursor is hovering over, or for dragging the window where the drag gesture started) and can be handled from Nasal or anything else that has access to the property tree.
* '''TheTom''': (30/07/2012) I have now pushed some updates to my branch. It is now possible to create windows (texture rectangles) with just using the property tree and place a canvas texture onto it. Mouse events are passed to the active window (=the window the cursor is hovering over, or for dragging the window where the drag gesture started) and can be handled from Nasal or anything else that has access to the property tree.
* '''TheTom''': "As of 07/2012, most things for building a GUI should be already available."
* '''TheTom''': "As of 07/2012, most things for building a GUI should be already available."
Line 64: Line 64:
Last updated: 08/2012
Last updated: 08/2012


List of missing things (if you'd like to get involved to help with any of these, please get in touch via the [http://flightgear.org/forums/viewforum.php?f=71 canvas forum]):
List of missing things (if you'd like to get involved to help with any of these, please get in touch via the [http://forum.flightgear.org/viewforum.php?f=71 canvas forum]):
==== Misc ====
==== Misc ====
* '''Documentation''': Read, ask questions, extend. I haven't done too much documentation (apart from inline documentation) just due to the reason that the API is not completely stable yet. You could also try different use-cases and maybe find some examples where the API lacks some features.{{Not done}}
* '''Documentation''': Read, ask questions, extend. I haven't done too much documentation (apart from inline documentation) just due to the reason that the API is not completely stable yet. You could also try different use-cases and maybe find some examples where the API lacks some features.{{Not done}}

Navigation menu