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
|
## DXE Module System
|
||||||
|
|
||||||
All modules are DXE3 dynamic libraries loaded by dvx.exe at startup.
|
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
|
files, reads `.dep` files for dependencies, and loads in topological
|
||||||
order. Widget modules that export `wgtRegister()` have it called after
|
order. Widget modules that export `wgtRegister()` have it called after
|
||||||
loading.
|
loading.
|
||||||
|
|
|
||||||
|
|
@ -3636,6 +3636,23 @@ static void pollWidgets(AppContextT *ctx) {
|
||||||
static void pollWidgetsWalk(AppContextT *ctx, WidgetT *w, WindowT *win) {
|
static void pollWidgetsWalk(AppContextT *ctx, WidgetT *w, WindowT *win) {
|
||||||
if (w->wclass && (w->wclass->flags & WCLASS_NEEDS_POLL) && w->wclass->poll) {
|
if (w->wclass && (w->wclass->flags & WCLASS_NEEDS_POLL) && w->wclass->poll) {
|
||||||
w->wclass->poll(w, win);
|
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) {
|
for (WidgetT *child = w->firstChild; child; child = child->nextSibling) {
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ dynamically loaded DXE3 module.
|
||||||
|
|
||||||
### Phase 1: Libraries (libs/*.lib)
|
### 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
|
`.dep` file (same base name, `.dep` extension) listing base names of
|
||||||
modules that must load first. The loader resolves the dependency graph
|
modules that must load first. The loader resolves the dependency graph
|
||||||
and loads in topological order.
|
and loads in topological order.
|
||||||
|
|
@ -38,7 +38,7 @@ dvxshell.lib (deps: libtasks, libdvx, texthelp, listhelp)
|
||||||
|
|
||||||
### Phase 2: Widgets (widgets/*.wgt)
|
### 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`).
|
also have `.dep` files (e.g., `textinpt.dep` lists `texthelp`).
|
||||||
Loaded in topological order, same as libs.
|
Loaded in topological order, same as libs.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# DVX Widget Modules
|
# DVX Widget Modules
|
||||||
|
|
||||||
Individual widget type implementations, each built as a separate `.wgt`
|
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()`,
|
loads every `.wgt` file it finds. Each module exports `wgtRegister()`,
|
||||||
which registers its widget class(es) and API struct with the core.
|
which registers its widget class(es) and API struct with the core.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue