ngl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ngl-devel] New features and a few changes


From: Peter R. Brinkler
Subject: Re: [ngl-devel] New features and a few changes
Date: Wed, 07 Jan 2004 15:36:28 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1) Gecko/20031114

Hi,

Vincent Caron wrote:

Hello,

here are some hints from me, Meeloo (NUI maintainer) should have more complete infos.


Peter R. Brinkler wrote:


1: A border widget which creates a border around the contents. With the ability to specify the border using a set of svg for the various border posisions (corner, edge....) .


  It does not look like it's in NUI. Something like GtkFrame ?
http://developer.gnome.org/doc/API/2.2/gtk/GtkFrame.html

More like the ability to do this on all widgets... providing a frame widget would be ok, except it leads to deeper widget hierarchies, with the possible redraw penalty?.

2: The ability to exclude any number of the subwidgets of nuiWidgetBox from the scaling of the contents. This is important to our project, which includes fairly complex interface, where resize must allow the labels and text to remain same size.


You can write your own nuiWidgetBox-like container with different layout/resize politics, that's the NUI way.

Yes I can do that, except that I feel that some of that functionality would be useful in more than one application, and it would complement the current nui-native container in a manner to make it much more usable. The ability to exclude widgets from resize is something which the gtk box containers do as well, leading to an easier transition for the gtk-- programmers.


3: n-way paned widget, for the viewport. Fltk (www.fltk.org) provides such a widget which may serve as inspiration to the implementor.


We never got it right, a closer look at this FLTK implementation would be nice.

The fltk implementation is nice, although it has some issues with resize (like all the rest of fltk) - it does however provide the basic capabilities.

6: Choice widget.


What is it ?

A simple button which has a menu attached with the different choices the "choice" provides. Once a choice has been made, the label of the button is updated with the choice. The funcitonality would resemble a that of a radiobutton group... except in a menu, with current selection indicated by the buton.


7: Value widgets:
class Value;
+ class InputValue : public Value; // Single line input, with up/down arrows to manipulate value with mouse. Should include precision, range, step...
 + class InputDoubleValue : public Value;
 + class InputStringValue : public Value
 + class InputLongValue : public Value
+ class SliderValue : public Value; // With range, precision, step and current value indicated.
 + class Dial : public SliderValue; // Knobs and such.
 + class Wheel : public SliderValue; // Those sgi wheels
 + class ProgressBar : public SliderValue;


Part of the answer is in nuiRange. nuiScrollBar can currently be used as a slider.

Yes - except that the scrollbar could in some way illustrate the current value.
It also provides a simple consistent interface....


8: Ability to modify the colours (background, border, etc) of the widgets using this->SetColour( 0xff00aaff );


We would not like to add too many of this features, customization of widgets (shape, colors, etc) should go further via nuiTheme. Several people have notified some interest to work in this area, this is definitively needed. nuiTheme should be a simple layer thats its between the actual widget-specific rendering code and nuiDrawContext. See Qt and GTK+ theming APIs to grasp the idea.

I certainly see your point, about wanting this to be specified by themes... except that some customizations are required.... for instance if you want to control the bacground border of a widgetbox to indicate common functionality.
Explicitly:
Illustrating that the content of a widgetbox group are polygon creation tools, while others are for creating nurbs.... similarly with menus... this menu is for nurbs so it's a faint rouge. Colours are a very fast method of indicating the "similarity" of tools.


9: Form widget like the one motif defines. The form widget allows:
  Ability to specify resizability.
Ability to specify positions of child widget borders as well as relatively to other child widgets. Ability to lock child widgets borders to edge of container as well as other child widget borders including the ability to lock border positions ( never scale this widget so the border is moved )


Some of this notions won't fit into the layout scheme of NUI (this part is 90% inspired by GTK+). Or to be more precise, you can achieve these goals by selecting the proper containers or writing them with these specific politics. For instance to place a widget at a specific and absolute position, you pack it in a nuiFixed container.

Correct.... only mention this because once you have the form you can do ui constructs which makes more sense compared to the boxed setup of gtk and alike. This I think is the reason that the form widget was so frequently requested in the gtk context (or was when I used gtk)


10: Ability to specify animation for button press, menu opening etc. events.


  Animation is a whole topic, never started in NUI.

Self and squeak has some functionality in this direction which might be interesting to look at.


11: The ability to specify the images for widgets using svg.


You mean the possibility to interchange images and SVGs more easily ?

No - the ability to do the "skin" of the widgets using SVG. I'm not sure if you can already change the way the slider look or the way the splitter-panes look - but using svg for such things would make nice ui skinning available to those with an "artistic" inclination.


12: Colour chooser widget


  Well, good exercise for a NUI starter, be my guest :)

Right - eventually I'll have to do that, if it's not inthere before then.... moonlight will probably need a colour chooser.


14: A RAD tool.


Was started once, someone should be working on it again very soon (Hugy on IRC). See http://sourceforge.net/projects/yapuka

Great.... I looked at that 6-8 months ago but couldn't make it compile.... I guess it will only be a matter of time.


15: A tutorial into how to write a custom widget.


Hum, NUI is not even really documented. I mean single-liners attached to methods won't help you much for now, I consider it 'internal memo' state.

I agree - I just put it for eventual inclusion on a "worklist".

Peter





reply via email to

[Prev in Thread] Current Thread [Next in Thread]