Class XbpHTMLWindow() Foundation
Class function of the XbpHTMLWindow class.
The XbpHTMLWindow class provides a windowed container which can display HTML pages using the HTMLayout lightweight HTML/CSS renderer. Instances of the XbpHTMLWindow class are intended for usage in conjunction with other Xbase Parts.
Unlike the XbpHTMLViewer() class which wraps an instance of Internet Explorer, HTML window objects do not require specific operating system components to be installed. Instead, all the required components ship as a part of Xbase++ and hence can be deployed along with the Xbase++ application.
Once the HTML window is created, the application can interact with the elements defined in the HTML markup. This is done through XbpHTMLElement() objects which represent individual elements in the HTML markup. The method :childFromId() can be used to retrieve an XbpHTMLElement object for a certain HTML element. This allows registering event handlers for reacting to the user clicking the mouse over a certain HTML element, for example.
// In the example, an HTML window object is
// created. An event handler is registered
// for handling mouse clicks on an <div>
// element which is defined in the HTML
// markup.
#pragma library( "xppwui.lib" )
PROCEDURE Main
LOCAL cHTML
LOCAL oXbp
LOCAL oElem
// Define the HTML markup to be displayed
// in the HTML window. Note the HTML
// <div> element with the id "mydiv"
TEXT INTO cHTML WRAP
<html>
<body>
<div id="mydiv">Click me!</div>
</body>
</html>
ENDTEXT
// Create the HTML window object
// and assign the HTML markup
oXbp := XbpHTMLWindow():new()
oXbp:HTML := cHTML
oXbp:create( , , {10,20}, {200,200} )
// Retrieve the HTML element which
// represents the <div> in the HTML
// markup and register a callback
// code block for handling mouse
// events
oElem := oXbp:mydiv
oElem:lbDown := {|| MsgBox("<div> was clicked!") }
// Process events until the application
// window is closed
SetAppWindow():showModal()
RETURN
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.