dfl/README.md
2024-07-14 21:03:45 +09:00

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);
}
```
![screen shot](./image/welcomtodfl.png "screen shot")
## 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
![screen shot](./examples/buttons/image/screenshot.png "screen shot")
![screen shot](./examples/tabcontrol/image/screenshot.png "screen shot")
![screen shot](./examples/listview/image/screenshot.png "screen shot")
![screen shot](./examples/statusbar/image/screenshot.png "screen shot")
![screen shot](./examples/splitter/image/screenshot.png "screen shot")
![screen shot](./examples/scrollbar/image/screenshot.png "screen shot")
![screen shot](./examples/imagelist/image/screenshot.png "screen shot")
![screen shot](./examples/commondialog/image/screenshot.png "screen shot")
![screen shot](./examples/commondialog/image/screenshot2.png "screen shot")
![screen shot](./examples/tooltip/image/screenshot.png "screen shot")
![screen shot](./examples/progressbar/image/screenshot3.png "screen shot")
![screen shot](./examples/clipboard/image/screenshot.png "screen shot")
![screen shot](./examples/clippingform/image/screenshot.png "screen shot")
![screen shot](./examples/picturebox/image/screenshot.png "screen shot")
![screen shot](./examples/notifyicon/image/screenshot.png "screen shot")
![screen shot](./examples/timer/image/screenshot.png "screen shot")
![screen shot](./examples/contextmenu/image/screenshot.png "screen shot")
![screen shot](./examples/toolbar/image/screenshot.png "screen shot")
![screen shot](./examples/richtextbox/image/screenshot.png "screen shot")
![screen shot](./examples/dclock/image/screenshot.png "screen shot")
![screen shot](./examples/tablerenderer/image/screenshot.png "screen shot")
![screen shot](./examples/linegraphrenderer/image/screenshot.png "screen shot")
![screen shot](./examples/timechartrenderer/image/screenshot.png "screen shot")
## 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.