DFL, the D Forms Library, is an easy to use user interface toolkit for the D programming language. It brings you a high level, easy to use interface, abstracted from the native API.
"Thanks for allowing me to be in the world of Windows. I hated Windows programming until DFL." -- User
"DFL is very easy to use once you see how it works. It's even similar to Windows Forms of .NET. So I think of D+DFL as a good alternative to C#+.NET. Also, DFL has Entice Designer which makes it even easier." -- User
With DFL you can:
What's New
New: DFL Tutorial
DFL now works with D1, D2 and Tango!
Entice Designer also released; a new version of the GUI builder.
As before, there's always new conversations happening over in the DFL forum.
Final Update: DFL will no longer be maintained by dprogramming.com Please see the GUI Libraries wiki page for DFL forks.
A new DFL snapshot is available (RC4)
Download
or DFL 0.9.8 zip archive
Tested with DMD v1.030 and DMD v1.036.
Tested with Tango 0.99.7 with DMD v1.033.
Be sure to read the DFL tutorial for setup and usage instructions. The included examples are a good starting point.
The download includes:
Should work on Microsoft Windows 95 and above. However, on Windows 95, some features require an up to date version of Internet Explorer to be installed. There are functions to call to test for these features.
New DFL Users
Entice Designer, a Form Designer for DFL, is also helpful to newcomers because the properties are easily accessible in a convenient list including descriptions. Entice also has a tutorial available.
Also new to the D language? Check out the "New D Users" section on the dprogramming.com home page.
Example Code
import dfl.all;
int main()
{
Form myForm;
Label myLabel;
myForm = new Form;
myForm.text = "DFL Example";
myLabel = new Label;
myLabel.font = new Font("Verdana", 14f);
myLabel.text = "Hello, DFL World!";
myLabel.location = Point(15, 15);
myLabel.autoSize = true;
myLabel.parent = myForm;
Application.run(myForm);
return 0;
}
Hello, DFL World!
There are many more examples in the DFL download. More screenshots are here.
FAQ
class MyForm: Form { this() { click ~= &form_click; // Add click event handler. } private void form_click(Object sender, EventArgs ea) { // Handle event here. } }
More
DFL forum hosted by dsource.org!
Check out the new Entice Designer project! A GUI Builder for DFL.
The start of new documentation is available here. It doesn't explain much yet, but it's often easier than going through the code, and you're welcome to add directly to it.
Contact
Please report bugs and comments to the forum or the contact form. You can make requests and I'll see what I can do to get them in the next release.
See the snapshots for changes in the next DFL release.