75 lines
2.2 KiB
Text
75 lines
2.2 KiB
Text
DVX SDK
|
|
=======
|
|
|
|
This SDK contains everything needed to develop applications and
|
|
widgets for the DVX GUI system.
|
|
|
|
Directory Structure
|
|
-------------------
|
|
|
|
include/
|
|
core/ DVX core headers (types, drawing, windows, widgets)
|
|
shell/ Shell/app loading API
|
|
tasks/ Cooperative task switching API
|
|
sql/ SQLite database wrapper API
|
|
widget/ Per-widget public API headers
|
|
|
|
samples/
|
|
hello/ Minimal "Hello World" application
|
|
widget/ Minimal custom widget
|
|
|
|
Requirements
|
|
------------
|
|
|
|
- DJGPP cross-compiler (i586-pc-msdosdjgpp-gcc)
|
|
- dxe3gen (included with DJGPP)
|
|
- DVX resource compiler (SYSTEM/DVXRES.EXE on the target,
|
|
or bin/dvxres on the host)
|
|
- DVX help compiler (SYSTEM/DVXHLPC.EXE on the target,
|
|
or bin/dvxhlpc on the host)
|
|
|
|
Building an Application
|
|
-----------------------
|
|
|
|
1. Write your app with appDescriptor and appMain exports
|
|
2. Compile: gcc -c -o myapp.o myapp.c -Isdk/include/core ...
|
|
3. Link: dxe3gen -o myapp.app -U myapp.o
|
|
4. Optionally create a .res file and build resources with dvxres
|
|
|
|
See samples/hello/ for a complete example.
|
|
|
|
Building a Widget
|
|
-----------------
|
|
|
|
1. Write your widget with wgtRegister export
|
|
2. Compile: gcc -c -o mywgt.o mywgt.c -Isdk/include/core
|
|
3. Link: dxe3gen -o mywgt.wgt -U mywgt.o
|
|
|
|
See samples/widget/ for a complete example.
|
|
|
|
Deployment
|
|
----------
|
|
|
|
Applications: APPS/<vendor>/<appname>/<appname>.APP
|
|
Widgets: WIDGETS/<vendor>/<wgtname>/<wgtname>.WGT
|
|
Libraries: LIBS/<vendor>/<libname>/<libname>.LIB
|
|
|
|
Each component can include:
|
|
- .DHS file for C API documentation (compiled into system help)
|
|
- .BHS file for BASIC documentation (compiled into BASIC help)
|
|
- .DEP file listing load-before dependencies
|
|
- .HCF file defining help compilation rules
|
|
- .RES file for embedded resources (icons, text, binary data)
|
|
|
|
Help is recompiled automatically at startup when module counts
|
|
change.
|
|
|
|
DXE3 Symbol Resolution
|
|
----------------------
|
|
|
|
DXE modules resolve symbols at load time via dlopen/dlsym.
|
|
All DVX core functions, widget APIs, and C runtime functions
|
|
are available automatically. You do not need import libraries.
|
|
|
|
The loader ensures libraries are loaded before widgets, and
|
|
widgets before applications, respecting .dep dependencies.
|