Minor docs fixes. Terminal display bug fixed.
This commit is contained in:
parent
56816eedd8
commit
f6354bef6f
4 changed files with 21 additions and 4 deletions
|
|
@ -125,7 +125,7 @@ dvxWidget.h.
|
|||
## DXE Module System
|
||||
|
||||
All modules are DXE3 dynamic libraries loaded by dvx.exe at startup.
|
||||
The loader scans `libs/` for `.lib` files and `widgets/` for `.wgt`
|
||||
The loader recursively scans `libs/` for `.lib` files and `widgets/` for `.wgt`
|
||||
files, reads `.dep` files for dependencies, and loads in topological
|
||||
order. Widget modules that export `wgtRegister()` have it called after
|
||||
loading.
|
||||
|
|
|
|||
|
|
@ -3636,6 +3636,23 @@ static void pollWidgets(AppContextT *ctx) {
|
|||
static void pollWidgetsWalk(AppContextT *ctx, WidgetT *w, WindowT *win) {
|
||||
if (w->wclass && (w->wclass->flags & WCLASS_NEEDS_POLL) && w->wclass->poll) {
|
||||
w->wclass->poll(w, win);
|
||||
|
||||
// If the poll dirtied internal state and the widget supports
|
||||
// quickRepaint, render the dirty rows directly into the window's
|
||||
// content buffer and add the affected area to the global dirty list.
|
||||
if (w->wclass->quickRepaint) {
|
||||
int32_t dirtyY = 0;
|
||||
int32_t dirtyH = 0;
|
||||
|
||||
if (w->wclass->quickRepaint(w, &dirtyY, &dirtyH) > 0) {
|
||||
int32_t scrollY = win->vScroll ? win->vScroll->value : 0;
|
||||
int32_t rectX = win->x + win->contentX;
|
||||
int32_t rectY = win->y + win->contentY + dirtyY - scrollY;
|
||||
int32_t rectW = win->contentW;
|
||||
win->contentDirty = true;
|
||||
dirtyListAdd(&ctx->dirty, rectX, rectY, rectW, dirtyH);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (WidgetT *child = w->firstChild; child; child = child->nextSibling) {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ dynamically loaded DXE3 module.
|
|||
|
||||
### Phase 1: Libraries (libs/*.lib)
|
||||
|
||||
Scans the `LIBS/` directory for `.lib` files. Each module may have a
|
||||
Recursively scans the `LIBS/` directory for `.lib` files. Each module may have a
|
||||
`.dep` file (same base name, `.dep` extension) listing base names of
|
||||
modules that must load first. The loader resolves the dependency graph
|
||||
and loads in topological order.
|
||||
|
|
@ -38,7 +38,7 @@ dvxshell.lib (deps: libtasks, libdvx, texthelp, listhelp)
|
|||
|
||||
### Phase 2: Widgets (widgets/*.wgt)
|
||||
|
||||
Scans the `WIDGETS/` directory for `.wgt` files. Widget modules may
|
||||
Recursively scans the `WIDGETS/` directory for `.wgt` files. Widget modules may
|
||||
also have `.dep` files (e.g., `textinpt.dep` lists `texthelp`).
|
||||
Loaded in topological order, same as libs.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# DVX Widget Modules
|
||||
|
||||
Individual widget type implementations, each built as a separate `.wgt`
|
||||
DXE module. The loader scans the `WIDGETS/` directory at startup and
|
||||
DXE module. The loader recursively scans the `WIDGETS/` directory at startup and
|
||||
loads every `.wgt` file it finds. Each module exports `wgtRegister()`,
|
||||
which registers its widget class(es) and API struct with the core.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue