mirror of
https://github.com/Rayerd/dfl.git
synced 2025-04-26 04:59:55 +03:00
138 lines
4.9 KiB
Markdown
138 lines
4.9 KiB
Markdown
# DFL
|
|
|
|
This unofficial project is a migration of [D Forms Library (DFL)](http://wiki.dprogramming.com/Dfl/HomePage "D Forms Library (DFL)") that is managed on SVN.
|
|
DFL is a Win32 windowing library for the D language.
|
|
|
|
```d
|
|
import dfl;
|
|
|
|
void main()
|
|
{
|
|
Form form = new Form;
|
|
form.text = "Welcome to DFL";
|
|
form.size = Size(300, 300);
|
|
|
|
Button button = new Button;
|
|
button.text = "OK";
|
|
button.location = Point(20, 20);
|
|
button.size = Size(100, 50);
|
|
button.click ~= (Control c, EventArgs e) => msgBox("OK button is clicked.");
|
|
button.parent = form;
|
|
|
|
Application.run(form);
|
|
}
|
|
```
|
|

|
|
|
|
## Recent major features
|
|
- **Windows OMF support has been removed (for DMD v2.109.0).**
|
|
- **Registered DFL to DUB.**
|
|
- Supported multiple screens.
|
|
- Module "dfl.chart" is now comming.
|
|
- TableRenderer (with example)
|
|
- LineGraphRenderer (with example)
|
|
- TimeChartRenderer (with example)
|
|
- Module "dfl.printing" is now comming.
|
|
- PrintDialog
|
|
- PrintSetupDialog
|
|
- PrintPreviewDialog
|
|
- Remove dflexe.
|
|
- Remove GTK-based DFL.
|
|
- Remove some bundled libraries such as user32_dfl.lib etc... (From now on, use dmd-bundled libraries such as the MinGW platform library and so on.)
|
|
|
|
## Screen shots
|
|
|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|
|
|
## Usage
|
|
First, you make new DUB project:
|
|
```bat
|
|
> cd examples\new_project
|
|
> dub init
|
|
```
|
|
Add DFL to local DUB registry:
|
|
```bat
|
|
> dub add dfl
|
|
> dub list
|
|
Packages present in the system and known to dub:
|
|
dfl 0.10.0: c:\your\path\dfl\0.10.0\dfl\
|
|
silly 1.2.0-dev.2: c:\your\path\silly\1.2.0-dev.2\silly\
|
|
undead 1.1.8: c:\your\path\undead\1.1.8\undead\
|
|
```
|
|
Build and run your GUI applications with DUB as below:
|
|
```bat
|
|
> dub build -a=x86_64
|
|
> dub run
|
|
```
|
|
**IMPORTANT**: DUB is building **dfl_dub.lib** that is **not** containing **undead.lib** and WINSDK libraries.
|
|
|
|
## APPENDIX: Build and Install dfl.lib and dfl_debug.lib
|
|
### 1. Set environment variables
|
|
Fix the paths below:
|
|
```bat
|
|
set dmd_path=c:\d\dmd2\windows
|
|
set dmc_path=c:\dmc\dm
|
|
```
|
|
### 2. Install the undeaD library
|
|
DFL is required the undeaD library (**undead.lib**).
|
|
Download a ZIP file from https://github.com/dlang/undead.
|
|
Extract **undeaD-master.zip** and run the below with either option `-a=x86_mscoff` or `-a=x86_64`:
|
|
```bat
|
|
> cd undeaD-master
|
|
> dub build -a=x86_64
|
|
Starting Performing "debug" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64.
|
|
Up-to-date undead ~master: target for configuration [library] is up to date.
|
|
> dir bin /b
|
|
undead.lib
|
|
```
|
|
Copy the **undead.lib** to `your/lib/dir`.
|
|
|
|
### 3. Make dfl.lib and dfl_debug.lib
|
|
Run **makelib.bat** (MSVC required):
|
|
```bat
|
|
> cd dfl/win32/dfl
|
|
> makelib.bat # 32-bit mscoff
|
|
```
|
|
or (MSVC required)
|
|
```bat
|
|
> makelib.bat 32mscoff # ditto
|
|
```
|
|
or (MSVC required)
|
|
```bat
|
|
> makelib.bat 64 # 64-bit mscoff
|
|
```
|
|
Also copy **dfl.lib** and **dfl_debug.lib** in `dfl/source` to `your/lib/dir`.
|
|
|
|
**IMPORTANT**: Both library files are containing the **undead.lib** and WINSDK libraries such as **user32.lib**, **gdi32.lib** and so on.
|
|
|
|
In order to make and move *.lib to paths below:
|
|
- **go.bat** (MSVC required) : Make and move *.lib to `%dmd_path%\lib32mscoff`
|
|
- **go.bat 32mscoff** (MSVC required) : ditto
|
|
- **go64.bat** (MSVC required) : Make and move *.lib to `%dmd_path%\lib64`
|
|
|
|
## License
|
|
DFL is under the boost and/or zlib/libpng license.
|
|
|
|
However, trackbar.d is covered by the MIT license.
|