From cee2f452aab2a78d9f5dfeb194a64ff42f2fd0f3 Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Sun, 9 Aug 2026 19:56:06 +0200 Subject: [PATCH] index --- scrbl/js-transform.scrbl | 2 +- scrbl/menu.scrbl | 6 +-- scrbl/racket-webview-collection.scrbl | 2 +- scrbl/racket-webview-intro.scrbl | 4 +- scrbl/racket-webview-qt.scrbl | 9 ++-- scrbl/racket-webview.scrbl | 6 +-- scrbl/rgba.scrbl | 6 +-- scrbl/rktwebview-api.scrbl | 72 +++++++++++++-------------- scrbl/rktwebviewqt-internals.scrbl | 6 +-- scrbl/wv-context.scrbl | 4 +- scrbl/wv-dialog.scrbl | 2 +- scrbl/wv-element.scrbl | 2 +- scrbl/wv-input.scrbl | 2 +- scrbl/wv-settings.scrbl | 2 +- scrbl/wv-window.scrbl | 16 +++--- 15 files changed, 71 insertions(+), 70 deletions(-) diff --git a/scrbl/js-transform.scrbl b/scrbl/js-transform.scrbl index 9478c13..c3883ec 100644 --- a/scrbl/js-transform.scrbl +++ b/scrbl/js-transform.scrbl @@ -306,7 +306,7 @@ The value is converted to JavaScript source text before the generated JavaScript is returned. } -@section{Example} +@section[#:tag "js-transform-example"]{Example} The following example combines function definition, method calls, list construction, sequential bindings and a lambda expression passed to a JavaScript diff --git a/scrbl/menu.scrbl b/scrbl/menu.scrbl index 1b2bfe9..fc0bc4e 100644 --- a/scrbl/menu.scrbl +++ b/scrbl/menu.scrbl @@ -18,7 +18,7 @@ Menu data structures used by the webview library. This module provides constructors, predicates, traversal helpers, mutation operations, and JSON conversion for menu trees. -@section{Overview} +@section[#:tag "menu-overview"]{Overview} A menu is represented as a tree. A menu consists of menu items, and a menu item may optionally contain a submenu. @@ -36,7 +36,7 @@ structure constructors and predicates are not exported directly. The public API uses constructor procedures and helper functions operating on those internal values. -@section{Predicates} +@section[#:tag "menu-predicates"]{Predicates} @defproc[(is-wv-menu? [mnu any/c]) boolean?]{ @@ -154,7 +154,7 @@ Sets the callback of the menu item identified by @racket[id]. @racket[menu] value. } -@section{Conversion} +@section[#:tag "menu-conversion"]{Conversion} @defproc[(wv-menu->json [menu any/c]) string?]{ diff --git a/scrbl/racket-webview-collection.scrbl b/scrbl/racket-webview-collection.scrbl index 7046bea..30a388f 100644 --- a/scrbl/racket-webview-collection.scrbl +++ b/scrbl/racket-webview-collection.scrbl @@ -5,7 +5,7 @@ scribble/core ) -@title{@elem{racket-webview}} +@title[#:tag "racket-webview-manual"]{@elem{racket-webview}} @table-of-contents[] diff --git a/scrbl/racket-webview-intro.scrbl b/scrbl/racket-webview-intro.scrbl index acab561..a1bdd0d 100644 --- a/scrbl/racket-webview-intro.scrbl +++ b/scrbl/racket-webview-intro.scrbl @@ -26,9 +26,9 @@ @title{Racket Webview - v@version - Introduction} @author[@author+email["Hans Dijkema" "hans@dijkewijk.nl"]] -@defmodule{racket-webview} +@defmodule[racket-webview] -@section{Overview} +@section[#:tag "racket-webview-intro-overview"]{Overview} This documentation is provided for version @bold{@version} of racket webview. diff --git a/scrbl/racket-webview-qt.scrbl b/scrbl/racket-webview-qt.scrbl index f0e2283..e60a926 100644 --- a/scrbl/racket-webview-qt.scrbl +++ b/scrbl/racket-webview-qt.scrbl @@ -1,11 +1,12 @@ #lang scribble/manual -@defmodule{racket-webview/racket-webview-qt} @title{Racket FFI Interface for @tt{rktwebview_qt}} + +@defmodule[racket-webview/racket-webview-qt] @author[@author+email["Hans Dijkema" "hans@dijkewijk.nl"]] -@section{Overview} +@section[#:tag "racket-webview-qt-overview"]{Overview} The module @tt{racket-webview-qt.rkt} provides a Racket FFI wrapper around the native @tt{rktwebview_qt} library. It loads the shared library, initializes the @@ -413,7 +414,7 @@ Requests a file-save dialog. Shows a native message box. } -@section{Event Delivery} +@section[#:tag "racket-webview-qt-event-delivery"]{Event Delivery} Each webview has an associated event callback. @@ -461,7 +462,7 @@ Example result: ] } -@section{Example} +@section[#:tag "racket-webview-qt-example"]{Example} @racketblock[ (define ctx diff --git a/scrbl/racket-webview.scrbl b/scrbl/racket-webview.scrbl index c932eb5..15a5ba9 100644 --- a/scrbl/racket-webview.scrbl +++ b/scrbl/racket-webview.scrbl @@ -3,7 +3,7 @@ @(require racket/base scribble/core) -@title{racket-webview} +@title[#:tag "racket-webview-functional"]{racket-webview} @author[@author+email["Hans Dijkema" "hans@dijkewijk.nl"]] @defmodule[racket-webview/racket-webview] @@ -31,7 +31,7 @@ JavaScript calls. When an HTML file is served, the context's CSS boilerplate is injected immediately before the closing @tt{} tag. -@section{Contexts} +@section[#:tag "racket-webview-contexts"]{Contexts} @defproc[(webview-new-context @@ -196,7 +196,7 @@ structure, an exception is raised. } -@section{Dialogs} +@section[#:tag "racket-webview-dialogs"]{Dialogs} Dialog functions return immediately. Results are delivered asynchronously via events. diff --git a/scrbl/rgba.scrbl b/scrbl/rgba.scrbl index f84ef25..0b1afdf 100644 --- a/scrbl/rgba.scrbl +++ b/scrbl/rgba.scrbl @@ -16,7 +16,7 @@ RGBA color support used by the webview library. This module exports a transparent @racket[rgba] structure together with predicates and conversion procedures for working with CSS-style color values. -@section{Overview} +@section[#:tag "rgba-overview"]{Overview} An @racket[rgba] value represents a color using red, green, blue, and alpha components. @@ -35,7 +35,7 @@ The intended external representation is the CSS form: "rgba(r,g,b,a)" ] -@section{Predicates} +@section[#:tag "rgba-predicates"]{Predicates} @defproc[(rgba/color? [v any/c]) boolean?]{ @@ -68,7 +68,7 @@ components. The field @racket[a] is the alpha component. The structure is transparent. } -@section{Conversion} +@section[#:tag "rgba-conversion"]{Conversion} @defproc[(rgba->string [c rgba?]) string?]{ diff --git a/scrbl/rktwebview-api.scrbl b/scrbl/rktwebview-api.scrbl index a46e81c..beebabc 100644 --- a/scrbl/rktwebview-api.scrbl +++ b/scrbl/rktwebview-api.scrbl @@ -1,6 +1,6 @@ #lang scribble/manual -@defmodule[racket-webview/c-api] +@bold{Interface:} @tt{racket-webview/c-api} @author[@author+email["Hans Dijkema" "hans@dijkewijk.nl"]] @@ -106,7 +106,7 @@ This applies to values returned by @tt{rkt_webview_info()}, @section{Environment and Runtime Control} -@defproc[(rkt_webview_env [env_cmds any/c]) void?]{ +@defproc[#:link-target? #f (rkt_webview_env [env_cmds any/c]) void?]{ C signature: @verbatim{ @@ -120,7 +120,7 @@ form @tt{"NAME=value"}. Return value: none. } -@defproc[(rkt_webview_init) void?]{ +@defproc[#:link-target? #f (rkt_webview_init) void?]{ C signature: @verbatim{ @@ -133,7 +133,7 @@ helper process. Return value: none. } -@defproc[(rkt_webview_cleanup) void?]{ +@defproc[#:link-target? #f (rkt_webview_cleanup) void?]{ C signature: @verbatim{ @@ -146,7 +146,7 @@ previously returned context and webview handles are invalid. Return value: none. } -@defproc[(rkt_webview_set_loglevel [l any/c]) void?]{ +@defproc[#:link-target? #f (rkt_webview_set_loglevel [l any/c]) void?]{ C signature: @verbatim{ @@ -158,7 +158,7 @@ Sets the backend log level. Return value: none. } -@defproc[(rkt_webview_info) any/c]{ +@defproc[#:link-target? #f (rkt_webview_info) any/c]{ C signature: @verbatim{ @@ -171,7 +171,7 @@ Returns a pointer to @tt{rkt_data_t}. The returned object has Return value: @tt{rkt_data_t *}, caller-owned. } -@defproc[(rkt_webview_version) any/c]{ +@defproc[#:link-target? #f (rkt_webview_version) any/c]{ C signature: @verbatim{ @@ -184,9 +184,9 @@ Returns a pointer to @tt{rkt_data_t}. The returned object has Return value: @tt{rkt_data_t *}, caller-owned. } -@subsection{Events} +@subsection[#:tag "rktwebview-c-api-events"]{Events} -@defproc[(rkt_webview_events_waiting) exact-integer?]{ +@defproc[#:link-target? #f (rkt_webview_events_waiting) exact-integer?]{ C signature: @verbatim{ @@ -198,7 +198,7 @@ Returns the number of events currently waiting in the event queue. Return value: @tt{int}. } -@defproc[(rkt_webview_get_event) any/c]{ +@defproc[#:link-target? #f (rkt_webview_get_event) any/c]{ C signature: @verbatim{ @@ -221,9 +221,9 @@ This keeps the event queue flowing, allows asynchronous operations such as dialogs to complete in a timely manner, and avoids the impression that the system has stalled while the Racket side is simply not looking. -@section{Contexts} +@section[#:tag "rktwebview-c-api-contexts"]{Contexts} -@defproc[(rkt_webview_new_context [boilerplate_js string?] +@defproc[#:link-target? #f (rkt_webview_new_context [boilerplate_js string?] [optional_server_cert_pem string?]) exact-integer?]{ C signature: @@ -241,7 +241,7 @@ Return value: @tt{rkt_wv_context_t}. @section{Webviews} -@defproc[(rkt_webview_create [context exact-integer?] +@defproc[#:link-target? #f (rkt_webview_create [context exact-integer?] [parent exact-integer?]) exact-integer?]{ C signature: @@ -257,7 +257,7 @@ otherwise it is created as a top-level window. Return value: webview handle as @tt{int}. } -@defproc[(rkt_webview_close [wv exact-integer?]) void?]{ +@defproc[#:link-target? #f (rkt_webview_close [wv exact-integer?]) void?]{ C signature: @verbatim{ @@ -269,7 +269,7 @@ Closes the specified webview. Return value: none. } -@defproc[(rkt_webview_valid [wv exact-integer?]) boolean?]{ +@defproc[#:link-target? #f (rkt_webview_valid [wv exact-integer?]) boolean?]{ C signature: @verbatim{ @@ -281,7 +281,7 @@ Checks whether @tt{wv} is a valid webview handle. Return value: @tt{bool}. } -@defproc[(rkt_webview_set_title [wv exact-integer?] [title string?]) +@defproc[#:link-target? #f (rkt_webview_set_title [wv exact-integer?] [title string?]) exact-integer?]{ C signature: @@ -294,7 +294,7 @@ Sets the window title of the specified webview. Return value: @tt{result_t}. } -@defproc[(rkt_webview_set_ou_token [wv exact-integer?] [token string?]) void?]{ +@defproc[#:link-target? #f (rkt_webview_set_ou_token [wv exact-integer?] [token string?]) void?]{ C signature: @verbatim{ @@ -309,7 +309,7 @@ Return value: none. @section{Navigation and JavaScript} -@defproc[(rkt_webview_set_url [wv exact-integer?] [url string?]) exact-integer?]{ +@defproc[#:link-target? #f (rkt_webview_set_url [wv exact-integer?] [url string?]) exact-integer?]{ C signature: @verbatim{ @@ -321,7 +321,7 @@ Navigates the specified webview to the given URL. Return value: @tt{result_t}. } -@defproc[(rkt_webview_set_html [wv exact-integer?] [html string?]) exact-integer?]{ +@defproc[#:link-target? #f (rkt_webview_set_html [wv exact-integer?] [html string?]) exact-integer?]{ C signature: @verbatim{ @@ -333,7 +333,7 @@ Loads raw HTML into the specified webview. Return value: @tt{result_t}. } -@defproc[(rkt_webview_run_js [wv exact-integer?] [js string?]) exact-integer?]{ +@defproc[#:link-target? #f (rkt_webview_run_js [wv exact-integer?] [js string?]) exact-integer?]{ C signature: @verbatim{ @@ -345,7 +345,7 @@ Executes JavaScript asynchronously in the specified webview. Return value: @tt{result_t}. } -@defproc[(rkt_webview_call_js [wv exact-integer?] [js string?]) any/c]{ +@defproc[#:link-target? #f (rkt_webview_call_js [wv exact-integer?] [js string?]) any/c]{ C signature: @verbatim{ @@ -365,7 +365,7 @@ result string. Return value: @tt{rkt_data_t *}, caller-owned. } -@defproc[(rkt_webview_open_devtools [wv exact-integer?]) exact-integer?]{ +@defproc[#:link-target? #f (rkt_webview_open_devtools [wv exact-integer?]) exact-integer?]{ C signature: @verbatim{ @@ -379,7 +379,7 @@ Return value: @tt{result_t}. @section{Window Management} -@defproc[(rkt_webview_move [w exact-integer?] [x exact-integer?] [y exact-integer?]) +@defproc[#:link-target? #f (rkt_webview_move [w exact-integer?] [x exact-integer?] [y exact-integer?]) exact-integer?]{ C signature: @@ -392,7 +392,7 @@ Moves the specified window to the given screen coordinates. Return value: @tt{result_t}. } -@defproc[(rkt_webview_resize [w exact-integer?] +@defproc[#:link-target? #f (rkt_webview_resize [w exact-integer?] [width exact-integer?] [height exact-integer?]) exact-integer?]{ @@ -407,7 +407,7 @@ Resizes the specified window. Return value: @tt{result_t}. } -@defproc[(rkt_webview_hide [w exact-integer?]) exact-integer?]{ +@defproc[#:link-target? #f (rkt_webview_hide [w exact-integer?]) exact-integer?]{ C signature: @verbatim{ @@ -419,7 +419,7 @@ Hides the specified window. Return value: @tt{result_t}. } -@defproc[(rkt_webview_show [w exact-integer?]) exact-integer?]{ +@defproc[#:link-target? #f (rkt_webview_show [w exact-integer?]) exact-integer?]{ C signature: @verbatim{ @@ -431,7 +431,7 @@ Shows the specified window. Return value: @tt{result_t}. } -@defproc[(rkt_webview_show_normal [w exact-integer?]) exact-integer?]{ +@defproc[#:link-target? #f (rkt_webview_show_normal [w exact-integer?]) exact-integer?]{ C signature: @verbatim{ @@ -443,7 +443,7 @@ Restores the specified window to its normal state. Return value: @tt{result_t}. } -@defproc[(rkt_webview_present [w exact-integer?]) exact-integer?]{ +@defproc[#:link-target? #f (rkt_webview_present [w exact-integer?]) exact-integer?]{ C signature: @verbatim{ @@ -455,7 +455,7 @@ Presents the specified window to the user. Return value: @tt{result_t}. } -@defproc[(rkt_webview_maximize [w exact-integer?]) exact-integer?]{ +@defproc[#:link-target? #f (rkt_webview_maximize [w exact-integer?]) exact-integer?]{ C signature: @verbatim{ @@ -467,7 +467,7 @@ Maximizes the specified window. Return value: @tt{result_t}. } -@defproc[(rkt_webview_minimize [w exact-integer?]) exact-integer?]{ +@defproc[#:link-target? #f (rkt_webview_minimize [w exact-integer?]) exact-integer?]{ C signature: @verbatim{ @@ -479,7 +479,7 @@ Minimizes the specified window. Return value: @tt{result_t}. } -@defproc[(rkt_webview_window_state [w exact-integer?]) exact-integer?]{ +@defproc[#:link-target? #f (rkt_webview_window_state [w exact-integer?]) exact-integer?]{ C signature: @verbatim{ @@ -491,7 +491,7 @@ Returns the current state of the specified window. Return value: @tt{window_state_t}. } -@section{Dialogs} +@section[#:tag "rktwebview-c-api-dialogs"]{Dialogs} The dialog functions are asynchronous. They request that the dialog be opened on the Qt side, but do not block the Racket side while the dialog is shown. This is @@ -502,7 +502,7 @@ Completion of a dialog is therefore observed through events, not by blocking the calling thread. -@defproc[(rkt_webview_choose_dir [w exact-integer?] +@defproc[#:link-target? #f (rkt_webview_choose_dir [w exact-integer?] [title string?] [base_dir string?]) exact-integer?]{ @@ -519,7 +519,7 @@ reported through events. Return value: @tt{result_t}. } -@defproc[(rkt_webview_file_open [w exact-integer?] +@defproc[#:link-target? #f (rkt_webview_file_open [w exact-integer?] [title string?] [base_dir string?] [permitted_exts string?]) @@ -537,7 +537,7 @@ reported through events. Return value: @tt{result_t}. } -@defproc[(rkt_webview_file_save [w exact-integer?] +@defproc[#:link-target? #f (rkt_webview_file_save [w exact-integer?] [title string?] [base_dir string?] [permitted_exts string?]) @@ -555,7 +555,7 @@ reported through events. Return value: @tt{result_t}. } -@defproc[(rkt_webview_message_box [w exact-integer?] +@defproc[#:link-target? #f (rkt_webview_message_box [w exact-integer?] [title string?] [message string?] [submessage string?] diff --git a/scrbl/rktwebviewqt-internals.scrbl b/scrbl/rktwebviewqt-internals.scrbl index 1cdb367..6160f29 100644 --- a/scrbl/rktwebviewqt-internals.scrbl +++ b/scrbl/rktwebviewqt-internals.scrbl @@ -1,7 +1,7 @@ #lang scribble/manual @(require racket/runtime-path) -@defmodule{racket-webview/internals} +@bold{Internal component:} @tt{racket-webview/internals} @title{Qt WebView Backend Architecture} @author[@author+email["Hans Dijkema" "hans@dijkewijk.nl"]] @@ -44,7 +44,7 @@ reconfigure the organ. No attempt is made to unify the instruments. Such efforts From the outside, one hears only a simple exchange: a call, a response. Internally, the balance is carefully maintained. For now, this is sufficient. And it holds. -@section{Overview} +@section[#:tag "rktwebview-qt-internals-overview"]{Overview} This backend provides a webview implementation by delegating all GUI and browser functionality to a separate Qt process. @@ -93,7 +93,7 @@ thread. From the caller’s perspective, a synchronous call returns only after the GUI thread has completed the action. -@section{Event Delivery} +@section[#:tag "rktwebview-qt-internals-event-delivery"]{Event Delivery} Many relevant events are not tied to a specific command. Page loading, navigation attempts, window movement, and JavaScript-originated events are delivered through diff --git a/scrbl/wv-context.scrbl b/scrbl/wv-context.scrbl index ba9194b..4660f81 100644 --- a/scrbl/wv-context.scrbl +++ b/scrbl/wv-context.scrbl @@ -15,14 +15,14 @@ @defmodule[racket-webview/wv-context] -@section{Overview} +@section[#:tag "wv-context-overview"]{Overview} The library is organized around two main concepts: contexts and windows. A context represents the shared runtime environment for one or more webview windows. It owns the underlying webview context, provides the base URL used by those windows, and gives access to persistent settings through -@racketmodname[wv-settings]. +@racketmodname[racket-webview/wv-settings]. A context stores both JavaScript and CSS boilerplate. The JavaScript boilerplate is passed to the native runtime, while the CSS boilerplate is injected into HTML diff --git a/scrbl/wv-dialog.scrbl b/scrbl/wv-dialog.scrbl index 3298770..1ca84d0 100644 --- a/scrbl/wv-dialog.scrbl +++ b/scrbl/wv-dialog.scrbl @@ -18,7 +18,7 @@ Dialog-window wrapper built on top of @racket[wv-window%]. This module exports the @racket[wv-dialog%] class. It is a specialized window class whose initial size and position are derived from its parent window. -@section{Overview} +@section[#:tag "wv-dialog-overview"]{Overview} A @racket[wv-dialog%] object is a @racket[wv-window%] that initializes itself as a dialog relative to its parent window. diff --git a/scrbl/wv-element.scrbl b/scrbl/wv-element.scrbl index 4e0c65c..70b6c9a 100644 --- a/scrbl/wv-element.scrbl +++ b/scrbl/wv-element.scrbl @@ -22,7 +22,7 @@ represent one DOM element within a @racket[wv-window%] and provide a small object-oriented interface for event dispatch, content replacement, CSS class manipulation, style access, and attribute access. -@section{Overview} +@section[#:tag "wv-element-overview"]{Overview} A @racket[wv-element%] object is associated with: diff --git a/scrbl/wv-input.scrbl b/scrbl/wv-input.scrbl index 7b957b2..7a6bd3d 100644 --- a/scrbl/wv-input.scrbl +++ b/scrbl/wv-input.scrbl @@ -22,7 +22,7 @@ This module exports a family of classes derived from @racket[wv-element%]. Each class represents one DOM input element and provides a typed @racket[get] method together with a @racket[set!] method. -@section{Overview} +@section[#:tag "wv-input-overview"]{Overview} All classes in this module inherit from @racket[wv-element%]. diff --git a/scrbl/wv-settings.scrbl b/scrbl/wv-settings.scrbl index e6cd81b..fc1a303 100644 --- a/scrbl/wv-settings.scrbl +++ b/scrbl/wv-settings.scrbl @@ -20,7 +20,7 @@ This module exports the @racket[wv-settings%] class, which provides a small object-oriented interface over an @racket[ini] settings backend. Settings are accessed relative to a context. -@section{Overview} +@section[#:tag "wv-settings-overview"]{Overview} A @racket[wv-settings%] object combines: diff --git a/scrbl/wv-window.scrbl b/scrbl/wv-window.scrbl index dff0042..d0aa622 100644 --- a/scrbl/wv-window.scrbl +++ b/scrbl/wv-window.scrbl @@ -23,10 +23,10 @@ Window abstraction built on top of @racketmodname[racket-webview]. This module exports the @racket[wv-window%] class and re-exports the APIs from -@racketmodname[wv-element], @racketmodname[wv-input], @racketmodname[rgba], and -@racketmodname[wv-settings]. +@racketmodname[racket-webview/wv-element], @racketmodname[racket-webview/wv-input], @racketmodname[racket-webview/rgba], and +@racketmodname[racket-webview/wv-settings]. -@section{Overview} +@section[#:tag "wv-window-overview"]{Overview} A @racket[wv-window%] object represents one webview window. @@ -479,7 +479,7 @@ The resulting geometry is then applied through @racket[move] and @racket[resize] } } -@section{Events} +@section[#:tag "wv-window-events"]{Events} The window installs an internal event handler when it is created. @@ -533,9 +533,9 @@ Only the first optional @racket[not-found-handler] is used. This module also re-exports the public APIs from: @itemlist[#:style 'compact - @item{@racketmodname[wv-element]} - @item{@racketmodname[wv-input]} - @item{@racketmodname[rgba]} - @item{@racketmodname[wv-settings]}] + @item{@racketmodname[racket-webview/wv-element]} + @item{@racketmodname[racket-webview/wv-input]} + @item{@racketmodname[racket-webview/rgba]} + @item{@racketmodname[racket-webview/wv-settings]}] It also re-exports @racket[webview-version].