|
RADLib
RADical C++ application framework
|
RADWeb wraps WebKitGTK behind a PIMPL public API in the RADWeb namespace. Public headers do not expose GTK or WebKit headers. It provides a browser window with tabs, URL loading, JavaScript evaluation, find-in-page, zoom, history, bookmarks, downloads, settings, permission handling, cookie policy, persistent/ephemeral profiles, and session restore.
RADWebBrowserWindow is the single public class. It derives from RADCore::RADObject, so it integrates with RADCore events: RAD_EVENT signals include loadStarted/loadFinished/loadFailed, titleChanged/uriChanged, javaScriptFinished/javaScriptFailed, tab lifecycle (tabAdded, tabClosed, activeTabChanged), download lifecycle (downloadStarted, downloadUpdated, downloadFinished, downloadFailed), permissionRequested, historyChanged, bookmarksChanged, and closed.
The window is created with create() (basic dimensions or a full RADWebWindowOptions struct) and driven with run()/quit(). Tabs are managed with newTab(), closeTab(), duplicateTab(), moveTab(), and setActiveTab(), and inspected through RADWebTabInfo snapshots. Navigation uses loadUrl(), loadHtml(), evaluateJavaScript(), plus goBack()/goForward()/reload(). Runtime configuration flows through RADWebSettings (with RADWebCookiePolicy and RADWebPermissionPolicy enums) applied via applySettings(). Persistent state is exposed as RADWebHistoryItem, RADWebBookmark, and RADWebDownloadInfo records through history(), bookmarks(), and downloads(). nativeWindow() and nativeWebView() return raw GTK/WebKit pointers for advanced integration.
RADWebBrowserWindow class over WebKitGTK, PIMPL-hidden.RAD_EVENT signals for load, tab, download, and permission events.RADWebSettings/RADWebWindowOptions configuration and native handle access.Beta notes:
Example: