DVX_GUI/sdk
2026-04-12 22:26:18 -05:00
..
samples An insane number of performance, logic, and feature enhancements; bug fixess; and other things. 2026-04-12 22:26:18 -05:00
readme.txt Reorganizing things preparing for next testing release. SDK added! 2026-04-09 01:27:40 -05:00

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 -E _appDescriptor -E _appMain -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 -E _wgtRegister -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.