PCL
|
Client-side interface to a PixInsight WebView control. More...
#include <WebView.h>
Public Types | |
using | content_event_handler = void(Control::*)(WebView &sender, const String &content) |
using | progress_event_handler = void(Control::*)(WebView &sender, int loadPercent) |
using | result_event_handler = void(Control::*)(WebView &sender, const Variant &result) |
using | state_event_handler = void(Control::*)(WebView &sender, bool state) |
using | view_event_handler = void(Control::*)(WebView &sender) |
Public Types inherited from pcl::Control | |
using | child_event_handler = void(Control::*)(Control &sender, Control &child) |
using | close_event_handler = void(Control::*)(Control &sender, bool &allowClose) |
using | event_handler = void(Control::*)(Control &sender) |
using | file_drag_event_handler = void(Control::*)(Control &sender, const pcl::Point &pos, const StringList &files, unsigned modifiers, bool &wantsFiles) |
using | file_drop_event_handler = void(Control::*)(Control &sender, const pcl::Point &pos, const StringList &files, unsigned modifiers) |
using | keyboard_event_handler = void(Control::*)(Control &sender, int key, unsigned modifiers, bool &wantsKey) |
using | mouse_button_event_handler = void(Control::*)(Control &sender, const pcl::Point &pos, int button, unsigned buttons, unsigned modifiers) |
using | mouse_event_handler = void(Control::*)(Control &sender, const pcl::Point &pos, unsigned buttons, unsigned modifiers) |
using | mouse_wheel_event_handler = void(Control::*)(Control &sender, const pcl::Point &pos, int delta, unsigned buttons, unsigned modifiers) |
using | move_event_handler = void(Control::*)(Control &sender, const pcl::Point &newPos, const pcl::Point &oldPos) |
using | paint_event_handler = void(Control::*)(Control &sender, const pcl::Rect &updateRect) |
using | resize_event_handler = void(Control::*)(Control &sender, int newWidth, int newHeight, int oldWidth, int oldHeight) |
using | view_drag_event_handler = void(Control::*)(Control &sender, const pcl::Point &pos, const View &view, unsigned modifiers, bool &wantsView) |
using | view_drop_event_handler = void(Control::*)(Control &sender, const pcl::Point &pos, const View &view, unsigned modifiers) |
Additional Inherited Members | |
Static Public Member Functions inherited from pcl::Control | |
static void | HideToolTip () |
static Control & | Null () |
static void | ShowToolTip (const Point &pos, const String &text, const Control &control=Control::Null(), const Rect &rect=Rect(0)) |
static void | ShowToolTip (int x, int y, const String &text, const Control &control=Control::Null(), const Rect &rect=Rect(0)) |
static String | ToolTipText () |
Static Public Member Functions inherited from pcl::UIObject | |
static UIObject & | Null () |
Protected Member Functions inherited from pcl::UIObject | |
UIObject ()=default | |
UIObject (const UIObject &x) | |
UIObject (UIObject &&x) | |
UIObject & | operator= (const UIObject &x) |
UIObject & | operator= (UIObject &&x) |
WebView is a specialized control for rendering text and HTML content on the PixInsight platform. The underlying implementation, which is based on Qt5's QWebEngineView class, has full HTML 5.1 support and an advandced, last-generation JavaScript engine.
It is very important to point out that this class is not intended to implement a web browser, even one with barebones functionality. The purpose of WebView is to render high-quality, interactive contents such as tables, spreadsheets and graphics, where the contained data are dynamically generated as HTML and JavaScript code.
pcl::WebView::WebView | ( | Control & | parent = Control::Null() | ) |
Constructs a WebView control.
parent | The parent control of this object. The default value is a null control. |
|
inlineoverride |
RGBA pcl::WebView::BackgroundColor | ( | ) | const |
Returns the background color of the WebView rendition encoded in 32-bit RGBA format.
void pcl::WebView::EvaluateScript | ( | const String & | sourceCode, |
const IsoString & | language = IsoString() |
||
) |
Executes a script in this WebView.
sourceCode | A string containing valid source code in the specified language. |
language | The name of a supported scripting language. Currently only the JavaScript language is supported by this function. JavaScript is assumed if this string is either empty or equal to "JavaScript". |
This function is asynchronous: It will return immediately without waiting for the script to complete execution. Once the script has finished, its result value will be sent to the OnScriptResultAvailable() event handler, if defined for this object. The result value is the value of the last executed expression statement in the script that is not in a function definition. Note that for scripts whose value is not required, the OnScriptResultAvailable event handler is not necessary.
The script will be executed by a web-oriented JavaScript engine with full support of the HTML 5.1 standard in current versions of PixInsight. Note that this engine is completely different from the core JavaScript Runtime (PJSR), so no PJSR resources are available. If you want to execute JavaScript code in PJSR, use MetaModule::EvaluateScript() instead of this member function.
This function has no way to know if script execution failed, for example as a result of syntax errors, invalid code, or exceptions thrown from JavaScript code. A Variant will always be generated to transport the result, but it may not transport a valid object (see Variant::IsValid()) if the script failed. How to diagnose script execution is completely up to the caller implementation.
bool pcl::WebView::HasSelection | ( | ) | const |
Returns true if there is a non-empty text selection in this WebView.
void pcl::WebView::LoadContent | ( | const String & | uri | ) |
Loads the content of this WebView from a local or external resource.
uri | A valid Uniform Resource Identifier, as defined by RFC 3986 (Uniform Resource Identifier: Generic Syntax). |
See SetContent() for important information on WebView's asynchronous content rendering, also applicable to this member function.
void pcl::WebView::Reload | ( | ) |
Reloads the content of this WebView. If no content has previously been loaded, calling this function has no effect.
void pcl::WebView::RequestHTML | ( | ) | const |
Requests retrieval of the current content of this WebView as HTML code encoded in UTF-16.
This function is asynchronous. Once the requested content is available, it will be sent to the OnHTMLAvailable() event handler, if defined for this object.
void pcl::WebView::RequestPlainText | ( | ) | const |
Requests retrieval of the current content of this WebView as plain Unicode text encoded in UTF-16, with all HTML markup removed.
This function is asynchronous. Once the requested content is available, it will be sent to the OnPlainTextAvailable() event handler, if defined for this object.
void pcl::WebView::SaveAsPDF | ( | const String & | filePath, |
double | pageWidth = 210 , |
||
double | pageHeight = 297 , |
||
double | marginLeft = 10 , |
||
double | marginTop = 10 , |
||
double | marginRight = 10 , |
||
double | marginBottom = 10 , |
||
bool | landscape = false |
||
) |
Writes the current content of this WebView as a PDF document.
filePath | Path to the output file. |
pageWidth | Page width in millimeters. The default width is 210 mm, corresponding to the standard A4 size. |
pageHeight | Page height in millimeters. The default height is 297 mm, corresponding to the standard A4 size. |
marginLeft | Left margin in millimeters. The default left margin is 10 mm. |
marginTop | Top margin in millimeters. The default top margin is 10 mm. |
marginRight | Right margin in millimeters. The default right margin is 10 mm. |
marginBottom | Bottom margin in millimeters. The default bottom margin is 10 mm. |
landscape | If true, the document will be generated with landscape orientation. This means that the width and height dimensions will be reversed. If false, the normal portrait orientation will be applied. This parameter is false by default. |
String pcl::WebView::SelectedText | ( | ) | const |
Returns the currently selected text as plain text. Returns an empty string if there is no text selection.
void pcl::WebView::SetBackgroundColor | ( | RGBA | color | ) |
Sets the background color of the WebView rendition. The specified color must be encoded in 32-bit RGBA format.
Sets the content of this WebView.
data | The content as a sequence of bytes, stored as a dynamic array of unsigned 8-bit integers. |
mimeType | A MIME type describing the type of the data. By default, that is, if an empty string is specified, the type will be detected based on heuristics. |
The content loading process is asynchronous. This member function will return immediately before the content has actually been loaded and rendered in this WebView. After calling this function, a sequence of events will be generated:
void pcl::WebView::SetHTML | ( | const IsoString & | html | ) |
Sets the content of this WebView in HTML format, encoded as UTF-8. See SetContent() for important information on WebView's asynchronous content rendering.
void pcl::WebView::SetHTML | ( | const String & | html | ) |
Sets the content of this WebView in HTML format, encoded as UTF-16. See SetContent() for important information on WebView's asynchronous content rendering.
void pcl::WebView::SetPlainText | ( | const IsoString & | text | ) |
Sets the content of this WebView as plain Unicode text encoded as UTF-8. See SetContent() for important information on WebView's asynchronous content rendering.
void pcl::WebView::SetPlainText | ( | const String & | text | ) |
Sets the content of this WebView as plain Unicode text encoded as UTF-16. See SetContent() for important information on WebView's asynchronous content rendering.
void pcl::WebView::SetZoomFactor | ( | double | zoom | ) |
Sets the zoom factor of this WebView rendition. The specified zoom factor must be in the range [0.25,5.0].
void pcl::WebView::Stop | ( | ) |
Stops loading the content of this WebView. If there is no ongoing content loading operation, calling this function has no effect.
double pcl::WebView::ZoomFactor | ( | ) | const |
Returns the zoom factor of this WebView rendition. The returned value is in the range [0.25,5.0].