Sign in Join
Wiki copytemporary

nvidia-widgets: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: nvidia-widgets

OldNewLine
1+## General
2+
3+This is the FPC port of the nvidia-widget set ([Internet Archive Link](https://web.archive.org/web/20160811073009/https://code.google.com/p/nvidia-widgets/downloads/detail?name=nvidia-widgets-1.0.0.tar.gz)). This widgetset is lightweight and extremely useful for projects that do not want to add a dependency to some large widget set e.g. GTK2 or QT.
4+
5+Originally ported by Darius Blaszyk in June 2011. The code works out of the box with FPC and does not need any 3rd party utilities.
6+
7+![](/wiki-images/c/c9/NvWidget_MacOS_386.png) ![](/wiki-images/a/a5/NvWidgets_WinXP32.png)
8+
9+## License
10+
11+The original code was released under the MIT license. This code, as it's derived work, will therefore also be released under MIT license. As far as I understand GPL easily mixes with MIT, so if your project is GPL you can use it as you would with a GPL library.
12+
13+## Widgets
14+
15+This widgetset comes with a layoutmanager. This means that you don't need to specify screen coordinates when you define the widgets, but you specify how you want to layout them and then just add the widgets as you like. You can embed multiple layout panels in each other to build complex layouts.
16+
17+The most important widgets are implemented, but more are allways welcome;
18+
19+- Label
20+- Button
21+- Checkbutton
22+- Radiobutton
23+- Horizontal slider
24+- Listbox
25+- Combobox
26+- Line edit
27+- Panel
28+- Textureview
29+
30+## Context and backend
31+
32+This widgetset is very modular, which is expressed by the fact that both the context as the backend are separated into it's own classes. Currently the GLut context is implemented and for the backend OpenGL obviously. Adding a new context or backend is very easy. All you need to do is implement the UIContext or UIPainter classes.
33+
34+## Documentation
35+
36+The widgetset library is documentated and online available from [here](http://lazarus-ccr.svn.sourceforge.net/viewvc/lazarus-ccr/components/nvidia-widgets/docs/index.html). Though not 100% complete it does describe the library to some extent. Patches to improve documentation are welcomed. There's also a [CHM](http://lazarus-ccr.svn.sourceforge.net/viewvc/lazarus-ccr/components/nvidia-widgets/docs/nvwidgets.chm) version available.
37+
38+## SVN
39+
40+` svn co `[`https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/nvidia-widgets`](https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/nvidia-widgets)` nvidia-widgets`
41+
42+or ViewCVS interface
43+
44+[`http://lazarus-ccr.svn.sourceforge.net/viewvc/lazarus-ccr/components/nvidia-widgets/`](http://lazarus-ccr.svn.sourceforge.net/viewvc/lazarus-ccr/components/nvidia-widgets/)
45+
46+## Todo list
47+
48+There is a number of todo items, but here are some important ones;
49+
50+- unicode support
51+- ~~fix freetype support + create a base class and add glutfont support back again~~
52+- ~~implement fpmake and a config.inc file where you can conditionally compile the desired painter and context~~
53+- ~~split the base painter and context~~
54+- ~~re-organise the sources to be more logical~~
55+- fix panel widget (on folding it crashes)
56+- improve fpdoc documentation of library
57+- cleanup API (eg unused parameters, move the get_WIDGET_ functions to the base object)
58+- implement scrolling panels
59+- implement SDL context class
60+- implement TnvApplication class that handles all context signals
61+
62+## About IMGUI
63+
64+This widgetset is an immediate mode graphical user interface (IMGUI). This means that this widgetset does not retain widget information outside the paint loop. The advantage of this is that it is very lightweight and easily expandible.
65+
66+## More information
67+
68+IMGUI : <https://web.archive.org/web/20140110175254/https://mollyrocket.com/forums/viewforum.php?f=10>
69+
70+---
71+*From the Free Pascal wiki, page "nvidia-widgets", as it stood on 2021-12-09 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
72+Category: Components
73+Category: Lazarus-CCR
74+Category: nvidia Widgetset

Back to history