Struct Window

Source
pub struct Window { /* private fields */ }
Expand description

Sciter window.

Implementations§

Source§

impl Window

Source

pub fn new() -> Window

Create a new main window.

Source

pub fn create(rect: RECT, flags: Flags, parent: Option<HWINDOW>) -> Window

Create a new window with the specified position, flags and an optional parent window.

Source

pub fn attach(hwnd: HWINDOW) -> Window

Attach Sciter to an existing native window.

Most likely, there is no need for run_app or run_loop after that. However, to get UI working, you have to route window events to Sciter - see the blog article.

Source

pub fn get_host(&self) -> Rc<Host>

Obtain a reference to Host which offers some advanced control over the Sciter engine instance.

Source

pub fn sciter_handler<Callback: HostHandler + Sized>( &mut self, handler: Callback, )

Set a callback for Sciter engine events.

Source

pub fn event_handler<Handler: EventHandler>(&mut self, handler: Handler)

Attach dom::EventHandler to the Sciter window.

You should install a window event handler only once - it will survive all document reloads. Also it can be registered on an empty window before the document is loaded.

Source

pub fn archive_handler(&mut self, resource: &[u8]) -> Result<(), ()>

Register an archive produced by packfolder tool.

The resources can be accessed via the this://app/ URL.

See documentation of the Archive.

Source

pub fn register_behavior<Factory>(&mut self, name: &str, factory: Factory)
where Factory: Fn() -> Box<dyn EventHandler> + 'static,

Register a native event handler for the specified behavior name.

Behavior is a named event handler which is created for a particular DOM element. In Sciter’s sense, it is a function that is called for different UI events on the DOM element. Essentially it is an analog of the WindowProc in Windows.

In HTML, there is a behavior CSS property that defines the name of a native module that is responsible for the initialization and event handling on the element. For example, by defining div { behavior:button; } you are asking all <div> elements in your markup to behave as buttons: generate BUTTON_CLICK DOM events when the user clicks on that element, and be focusable.

When the engine discovers an element having behavior: xyz; defined in its style, it sends the SC_ATTACH_BEHAVIOR host notification with the name "xyz" and an element handle to the application. You can consume the notification and respond to it yourself, or the default handler walks through the list of registered behavior factories and creates an instance of the corresponding dom::EventHandler.

§Example:
struct Button;

impl sciter::EventHandler for Button {}

let mut frame = sciter::Window::new();

// register a factory method that creates a new event handler
// for each element that has "custom-button" behavior:
frame.register_behavior("custom-button", || { Box::new(Button) });

And in HTML it can be used as:

<button style="behavior: custom-button">Rusty button</button>
Source

pub fn load_file(&mut self, uri: &str) -> bool

Load an HTML document from file.

The specified uri should be either an absolute file path or a full URL to the HTML to load.

Supported URL schemes are: http://, file://; this://app/ (when used with archive_handler).

ZIP archives are also supported.

Source

pub fn load_html(&mut self, html: &[u8], uri: Option<&str>) -> bool

Load an HTML document from memory.

For example, HTML can be loaded from a file in compile time via include_bytes!.

Source

pub fn get_hwnd(&self) -> HWINDOW

Get a native window handle.

Source

pub fn collapse(&self, hide: bool)

Minimize or hide the window.

Source

pub fn expand(&self, maximize: bool)

Show or maximize the window.

Source

pub fn dismiss(&self)

Close the window.

Source

pub fn set_title(&mut self, title: &str)

Set a new window title.

Source

pub fn get_title(&self) -> String

Get the native window title.

Source

pub fn set_options(&self, options: Options) -> Result<(), ()>

Set various Sciter engine options, see the Options.

Source

pub fn set_variable(&self, path: &str, value: Value) -> Result<()>

Set a global variable by its path to a single window.

This variable will be accessible in the current window via globalThis[path] or just path.

Note that the document doesn’t have to be loaded yet at this point.

See also sciter::set_variable to assign a global to all windows.

Source

pub fn get_variable(&self, path: &str) -> Result<Value>

Get a global variable by its path.

It can be a variable previously assigned by sciter::set_variable or Window::set_variable, or a Sciter.JS variable, like document, location, console, etc.

Source

pub fn run_app(self)

Show window and run the main app message loop until the main window is closed.

Source

pub fn run_loop(self)

Run the main app message loop with the already shown window.

Source

pub fn quit_app(&self)

Post a quit message for the app.

Auto Trait Implementations§

§

impl Freeze for Window

§

impl !RefUnwindSafe for Window

§

impl !Send for Window

§

impl !Sync for Window

§

impl Unpin for Window

§

impl !UnwindSafe for Window

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.