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: Vincent Caron
Subject: Re: [ngl-devel] New features and a few changes
Date: Wed, 07 Jan 2004 15:08:54 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4

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


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.


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.


4: Tabbed container.

  Effectively lacking.


5: Scrolled container for adding scrollbars around children.

  Looks like nuiScrolledView.


6: Choice widget.

  What is it ?


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.


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.


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.


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

  Animation is a whole topic, never started in NUI.


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

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


12: Colour chooser widget

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


13: Ramp widget - A widget which creates a ramp between one or more colours:


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


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.


16: Demos for each type of functionality/Widget

You have Meeloo's scratchpad named 'nuitest', and the generic demo name 'tester' (which should only need the addition of an XML file per widget/situation).


More to come......

  Ouch ;). See you,

Vincent




reply via email to

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