| File | Language | Author(s) | Copyright |
|---|---|---|---|
| accordionPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| canvasPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| dockPane.js | Javascript | Kenneth F. Guerin | Copyright © 2023-2024 Brick Mill Games, LLC, All rights reserved. |
| dropdownPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| flowPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| gridPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| hboxPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| menuPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| observers.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024, Brick Mill Games, LLC. All rights reserved. |
| overlayPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| pushButton.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| selectList.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| sliderControl.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| slidingPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| stackablePane.js | Javascript | Kenneth F. Guerin | Copyright © 2022-2024 Brick Mill Games, LLC, All rights reserved. |
| svgPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| tabPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| vboxPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| webfx.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| windowPane.js | Javascript | Kenneth F. Guerin | Copyright © 2023-2024 Brick Mill Games, LLC, All rights reserved. |
| File | Language | Author(s) | Copyright |
|---|---|---|---|
| observers.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024, Brick Mill Games, LLC. All rights reserved. |
This class provides drag event handling for elements listening to drag-n-drop operations handled via the $.tracking singleton (see overlayPane.js)
new DragEventObserver(callback)
disconnect() <api>
This method implements the disconnect API defined for observers.observe() <api>
This method implements the observe API defined for observers.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| observers.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024, Brick Mill Games, LLC. All rights reserved. |
This class provides advanced mouse event handling for browser applications.
new MouseEventObserver(callback)
disconnect() <api>
This method implements the disconnect API defined for observers.observe() <api>
This method implements the observe API defined for observers.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| accordionPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| canvasPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| dockPane.js | Javascript | Kenneth F. Guerin | Copyright © 2023-2024 Brick Mill Games, LLC, All rights reserved. |
| dropdownPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| flowPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| hboxPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| menuPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| overlayPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| pushButton.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| selectList.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| sliderControl.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| slidingPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| stackablePane.js | Javascript | Kenneth F. Guerin | Copyright © 2022-2024 Brick Mill Games, LLC, All rights reserved. |
| svgPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| tabPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
| vboxPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| webfx.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
| windowPane.js | Javascript | Kenneth F. Guerin | Copyright © 2023-2024 Brick Mill Games, LLC, All rights reserved. |
The WebFX namespace encapsulates all definitions related to the family of WebFX classes used for browser-based application development.
| File | Language | Author(s) | Copyright |
|---|---|---|---|
| accordionPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <accordionPane>
new WebFX.AccordionPane()
The accordion-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.$activateSlot(nth) <private>
This private method is used to activate a particular accordion-slot.$activateSlot(slotElement) <private>
This private method is used to activate a particular accordion-slot.$deactivate() <private>
This private method is used to deactivate the current active accordion-slot.$trigger(event) <private>
This private method is used to conduct actions based on a successful mouse click on an accordion-selector. The method will determine which accordion-slot is associated with the accordion-selector that was clicked.attributeChangedCallback(name, oldValue, newValue) <api>
For this control, nothing happens when an attribute is changed. The CSS handles look & feel changes.connectedCallback() <api>
Upon connection to the DOM, this method sets the mouse-click event listener.disconnectedCallback() <api>
Upon connection to the DOM, this method removes the mouse-click event listener.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| accordionPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <accordion-selector>
An accordion-selector is used with a accordion-pane's shadow DOM in order to allow the user to expand / contract the accordion-pane.
new WebFX.AccordionSelector()
The accordion-selector constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.active ↔ Boolean
This property determines whether the accordion-selector is in the active state or not.attributeChangedCallback(name, oldValue, newValue) <api>
For this control, nothing happens when an attribute is changed. The CSS handles look & feel changes.connectedCallback() <api>
Upon connection to the DOM, this method sets default attribute settings.disconnectedCallback() <api>
For this control, nothing happens when it is disconnected.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| accordionPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <accordion-slot>
An accordion-slot is used to define the contents of each block of information within an accordion-pane.
new WebFX.AccordionSlot()
The accordion-slot constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.active ↔ Boolean
This property determines whether the associated accordion-selector is in the active state or not.heading ↔ String
This property sets the value of the associated accordion-selector in the shadow DOM.attributeChangedCallback(name, oldValue, newValue) <api>
When the following attribute values change: - 'heading': change the accordion-selector's value based on the new heading value - 'active': show/hide the accordion-pane's contents and update the accordion-selector's active stateconnectedCallback() <api>
Upon connection to the DOM, this method sets default attribute settings and adds the private $trigger event listener.disconnectedCallback() <api>
For this control, nothing happens when it is disconnected.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| canvasPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <canvas-pane>
An canvas-pane encapsulates a canvas element.
new WebFX.CanvasPane()
The canvas-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.drawProc ↔ Function
This property, set via the canvas-pane's "draw" attribute, is called in response to drawing events.factory ↔ Function
This property, set directly via JS code, is called in response to drawing events instead of the drawProc.resizable ↔ Boolean
This property determines if the canvas can be resized, true by default.ro ↔ ResizeObserver <private>
This internal property is used to track element size changes in order to redraw the content.$configureCanvas() <private>
This private method will create the inner canvas based on the current dimensions of the enclosing div element.$redrawPane() <private>
This method will redraw the embedded SVG based either on the factory property or on the 'draw' attibute.attributeChangedCallback(name, oldValue, newValue) <api>
When the 'draw' attribute changes, the embedded SVG element will be replaced.connectedCallback() <api>
Upon connection to the DOM, this method sets the element's drawProc, sets the resizable to its default value of "true", if necessary, and sets the ResizeObserver to observe if the pane is resizable.disconnectedCallback() <api>
When this element is disconnected, the drawProc is removed and the ResizeObserver is set to unobserve if the pane is resizable.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| dockPane.js | Javascript | Kenneth F. Guerin | Copyright © 2023-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <dock-pane>
Dock panes are panes which attach to the sides of a parent element.
new WebFX.DockPane()
The dock-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.mode ↔ String
This property manages dock-pane's operating mode.side ↔ String
This property manages dock-pane's attachment side.trigger ↔ String
This property manages dock-pane's trigger size (when mode is 'auto-hide').triggerColor ↔ String
This property manages dock-pane's trigger border color.$configure(set_hidden_value) <private>
This private API call sets the sizing and location and auto-hide trigger properties of the dock-pane.$connect() <private>
This private API call, called on the connect event, configures the dock-pane properties that rely on the dock-pane being visible. It sets the mouse event handlers needed for auto-hide functionality.$disconnect() <private>
This private API call, called on the disconnect event or mode switch from auto-hide to static, removes the mouse event handlers needed for auto-hide functionality.$hide() <private>
This private API call hides the dock-pane, revealing only the trigger. It is called on mouseleave events.$show() <private>
This private API call shows the dock-pane, hiding the trigger region. It is called on mouseenter events.attributeChangedCallback(name, oldValue, newValue) <api>
When the following attribute values change: - 'side': change the dock-pane's docking side - 'mode': change the dock-pane's operating modeconnectedCallback() <api>
Upon connection to the DOM, this method enables the auto-hide machinery.disconnectedCallback() <api>
Upon disconnection to the DOM, this method disables the auto-hide machinery.lock(open)
This function will lock a dock capable of auto-hiding into an open or closed position. This is useful when popup-menus are called from a button on such a dock.unlock()
This function will unlock a locked dock.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| dropdownPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <dropdown-selector>
A dropdown-selector is used with a dropdown-pane's shadow DOM in order to allow the user to expand / contract the dropdown-pane.
new WebFX.DropDownSelector()
The dropdown-selector constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.active ↔ Boolean
This property determines whether the dropdown-selector is in the active state or not.attributeChangedCallback(name, oldValue, newValue) <api>
For this control, nothing happens when an attribute is changed. The CSS handles look & feel changes.connectedCallback() <api>
Upon connection to the DOM, this method sets default attribute settings.disconnectedCallback() <api>
For this control, nothing happens when it is disconnected.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| dropdownPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <dropdown-pane>
The dropdown pane is a construct that allows for blocks of information within the web document or application to be hidden and/or shown by the user.
new WebFX.DropdownPane()
The dropdown-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.expand ↔ Boolean
This property determines whether the dropdown-pane's content is visible or not.heading ↔ String
This property sets the value of the dropdown-selector in the shadow DOM.$toggle()
This private method toggles the expand property's value between 'false' and 'true'.$trigger(event) <private>
This private method is used to toggle the state of the dropdown-pane if the mouse-click occured within the dropdown-selector.attributeChangedCallback(name, oldValue, newValue) <api>
When the following attribute values change: - 'heading': change the dropdown-selector's value based on the new heading value - 'expand': show/hide the dropdown-pane's contents and update the dropdown-selector's active stateconnectedCallback() <api>
Upon connection to the DOM, this method sets default attribute settings and adds the private $trigger event listener.disconnectedCallback() <api>
Upon disconnection from the DOM, this method removes event listeners.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| flowPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <flow-pane>
Flow panes are single-row flex boxes that are used to hold other elements.
new WebFX.FlowPane()
The flow-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.align ↔ String
This property sets the flow-pane's item alignment when fillingdirection ↔ String
This property sets the flow-pane's direction when fillinginline ↔ String
This property sets whether the flow-pane is an inline or block objectjustify ↔ String
This property sets the flow-pane's justify when fillingwrap ↔ String
This property sets the flow-pane's wrap when fillingattributeChangedCallback(name, oldValue, newValue) <api>
When the following attribute values change: - 'direction': change the flow-pane's directionconnectedCallback() <api>
Upon connection to the DOM, this method sets default attribute settings.disconnectedCallback() <api>
For this control, nothing happens when it is disconnected.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| hboxPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <hbox-pane>
HBox panes are single-row grids that are used to hold other elements.
new WebFX.HBoxPane()
The hbox-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.expand ↔ String
This property manages hbox-pane's expandability options.attributeChangedCallback(name, oldValue, newValue) <api>
When the following attribute values change: - 'expand': change the vbox-pane's expandability optionconnectedCallback() <api>
Upon connection to the DOM, this method enables the MutationObserverdisconnectedCallback() <api>
Upon disconnection to the DOM, this method disables the MutationObserver| File | Language | Author(s) | Copyright |
|---|---|---|---|
| tabPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <htab-pane>
new WebFX.HTabPane()
The tab-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.tabStyle ↔ String
This property determines the look & feel of the tab-selectors. Valid values are 'tabs' and 'buttons'.$deactivate() <private>
This private method is used to deactivate the current active tab-slot.$loadSelector(slot, selectorText, closable) <private>
This private method is used to attached a tab-slot to the tab-pane by creating its associated tab-selector.$trigger(event) <private>
This private method is used to conduct actions based on a successful mouse click on an tab-selector. The method will determine which tab-slot is associated with the tab-selector that was clicked.activateSlot(slotElement)
This private method is used to activate a particular tab-slot.activateSlot(nth)
This private method is used to activate a particular tab-slot.attributeChangedCallback(name, oldValue, newValue) <api>
When the tab-style attribute is changed, the tab-pane will change its tab-selectors from one style to another.connectedCallback() <api>
Upon connection to the DOM, this method sets the default tab-style to 'tabs' and sets the mouse-click event listener.disconnectedCallback() <api>
Upon connection to the DOM, this method removes the mouse-click event listener.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| menuPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <menu-pane>
The menu pane is a construct that allows for popup-menus to be display and acted upon. Menu panes can contain other menu panes.
new WebFX.MenuPane()
The dropdown-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM. It also creates the MutationObserver to react to changes in push-button content.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.inactive ↔ Boolean
This property determines the visibility of the menu-panelevel ↔ Integer
This property determines whether the dropdown-pane's content is visible or not.$manageChildren() <private>
This private method is used to manage the button's text based on its type, state and multichoice selection.attributeChangedCallback(name, oldValue, newValue) <api>
When the 'inactive' attribute has changed, update the UI and add/remove event listeners based on the new value.connectedCallback() <api>
Upon connection to the DOM, this method manages its children and sets the MutationObserver to observe changes.disconnectedCallback() <api>
Upon disconnection from the DOM, this method disconnects from the MutationObserver.elementAt(x, y) → HTMLElement or Null
has(element) → Integer or Null
item(element) → HTMLElement or Null
itemAt(x, y) → HTMLElement or Null
locate(x, y) → Integer or Null
shortcutValue(shortcut) → String
| File | Language | Author(s) | Copyright |
|---|---|---|---|
| overlayPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <overlay-pane>
The overlayPane is used to manage modal-type operations for dialog boxes, popup menus and the like. Its primary purpose is to cover the entire web document / application at a high z-index and capture and forward mouse-click events, when applicable.
There are two modes: strict and non-strict. The former requires interaction with child elements, such as a dialog box's 'OK' button. The latter is looser and any click outside of any child elements will abort the whole operation. Popup menu operations are non-strict; a mouse-click outside of the menu acts as an escape from any choices.
This element also contains a menu handling subsystem that is used to properly manage popup menu operation.
This element, though not supported at this time, will also allow for "live tracking" operations, where children of this element will spawn events based on mouse movement and not require additional mouse clicks.
new WebFX.OverlayPane()
The overlay-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM. It also creates sets the closeHandler property to null.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.active ↔ Boolean
This property is used to determine if the overlay-pane is in operation.closeHandler ↔ Function
This property is used to store the closeHandler, a function called when the overlay-pane becomes inactive.strict ↔ Boolean
This property is used to determine if the overlay-pane is operating in strict mode.tracking ↔ Boolean
This property is used to determine if live tracking is being used.$nsMouseDownHandler(event) <private>
In non-strict mode, this handler will abort the overlay-pane.attributeChangedCallback(name, oldValue, newValue) <api>
When the following attribute values change: - 'active': when set to false, the overlay-pane will detach itself and the closeHandler will be called - 'strict': this property will enable/disable the mouse-down event listeners for this element itself (enabled if false)connectedCallback() <api>
This function sets the mouse-down and mouse-move event listeners.disconnectedCallback() <api>
This function removes the mouse-down and mouse-move event listeners.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| pushButton.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <push-button>
Push buttons can be simple text-based do-something-on-click buttons or on/off toggle buttons or multi-choice / multi-state selection buttons.
To define the different types of buttons, one must: - in order to define a toggle button, the "toggle" attribute must be defined as either "on" or "off". - in order to define a multi-state button, the button must contain children with <state> elements. - in order to define a multi-choice button, the button must contain children with <option> elements. - without any of these characteristics, the button will be a "simple" push button.
The contents of the visual button will be defined by the type of button and, if it is a multi-choice or multi-state button, its current state.
A regular, simple push button will be defined by the enclosed contents of the push-button tags. Simple text within the enclosing tags will make up the text of the button. More complex constructs, such as flow-panes with text and associated imagery, can also be used as the underlying DOM construct of the regular button is a div element encapsulating the innerHTML.
Multi-choice buttons work the same way as "select" items in regular HTML, but they are implemented using a button + pop-menu construct. The options for multi-choice buttons are defined using option tags in a way similar to standard "select" items. The visual representation of the button's contents consists of the current selection choice and a visual cue, currently implemented as a solid or hollow diamond. Customization of the visual cue may be supported in the future.
Multi-state buttons control sequential, incremental state changes. The states are defined using "state" tags within the enclosing push-button tags. The visual representation of the button's contents consists of the text associated with current state.
Javascript functions can be called when an action is triggered: - by a regular button when the button is pressed - by a multichoice button when a selection is made - by a multistate button when the state has changed
The primary method for an action to be triggered is defined using the "action" attribute. The embedded code can reference data associated with the button based on its type: - via the "event" variable if it is a regular button - via the "state" variable if it is a toggle button - via the "value" variable if it is a multi-choice button, where "value" is the textual representation of the new selection - via the "oldValue","newValue" variables if it is a multi-state button, where "oldValue" is the textual representation of the previous state and "newValue" is the textual representation of the new state
While the action attribute will contain JS code in text form, similar to how the onclick attribute is used for certain built-in HTML elements, it is also possible to dynamically set the action property as a function. This is very useful when variable bindings are necessary.
In addition to specifying an "action" attribute, the button's "callback" property may be set to execute code when the button is triggered. While actions are used for toggle, multi-state and multi-choice buttons, callbacks are used for simple buttons. However, simple buttons can also have actions defined for them, allowing for simple buttons to call two different functions. In these rare situations, the callback function will be called first. While a callback can be used to run an action to be triggered when pressing the button, it is more likely used to do some sort of clean-up work, such as closing a dialog box.
Finally, the "disabled" attribute can be used to make a push-button immune from user interactions. By default, this attribute is "false". When set to "true" (as a String), the button's visual representation may change to show the user that button's actions cannot be triggered.
new WebFX.PushButton()
The push-button constructor executes the usual custom HTML initialization procedure by creating the shadow DOM. It also creates the MutationObserver to react to changes in push-button content.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.action ↔ Function
This property, set via code or the push-button's "action" attribute, is called in response to events.callback ↔ Function
This property, set via code, is called in response to events prior to the push-button's action.disabled ↔ Boolean
This property manages the push-button's ability to respond to events.mo ↔ MutationObserver <private>
This internal property is used to track push-button content changes.selected ↔ Integer
This property manages the current selection of a multi-choice push-button.state ↔ Integer
This property manages the current state of a multi-state push-button.toggle ↔ Boolean
This property manages the current state of a toggle button.value ↔ Integer
This property manages the current value of a multi-choice push-button.$keyDownHandler(event) <private>
This private method handles key-down events and triggers the button's actions if the key was the 'Enter' key and the button had focus.$manageChildren() <private>
This private method is used to manage the button's text based on its type, state and multichoice selection.$mouseDownHandler(event) <private>
This private method puts the button in pressing mode when the left mouse button is pressed inside the button It uses the 'has-pressed' and 'pressing' attributes to manage its "being pressed" state. 'has-pressed' is used to note that the process has begun. 'pressing' is used for UI feedback.$mouseOutHandler() <private>
This private method handles mouse out events while the push-button is being pressed. A drag of the mouse outside of the push-button while the mouse button is still pressed will modify the push-button's appearance and a release outside of the push-button will not trigger the push-button's action.$mouseOverHandler(event) <private>
This private method handles mouse over events after the push-button has been pressed. It can reset itself if the mouse button has been released outside of the push-button itself.$mouseUpHandler() <private>
This private method ejects the button from pressing mode when the left mouse button is released.$preventDefault(event) <private>
This private method is used to to signify to the browser's event machinery that we've captured and processed the event.$setButtonType() <private>
This private method is used to manage the button's text based on its type, state and multichoice selection.$setupActionProc() <private>
$trigger(event) <private>
This private method is used to conduct actions based on a successful mouse click or key down event.attributeChangedCallback(name, oldValue, newValue) <api>
When the 'disabled' attribute has changed, add/remove event listeners based on the new value.connectedCallback() <api>
Upon connection to the DOM, this method enables the MutationObserver, sets the tabindex and enables the mouse event handlers.disable()
Disables the button's ability to respond to events.disconnectedCallback() <api>
Upon disconnection from the DOM, this method disables the mouse event listeners and the MutationObserver.enable()
Enables the button's ability to respond to events.incstate()
This method increments a multi-state button to its next state.reset()
This method sets a multi-state button to its initial state.tap()
This method toggles the on/off state of a toggle button.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| selectList.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <select-item>
Select items are selectable items within a select-list.
new WebFX.SelectItem()
The select-item constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.expand ↔ String
This property manages select-item's expandability options.attributeChangedCallback(name, oldValue, newValue) <api>
connectedCallback() <api>
Upon connection to the DOM, this method sets default attribute settings.disconnectedCallback() <api>
For this control, nothing happens when it is disconnected.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| selectList.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <select-list>
Select lists are single-column grids with selectable content.
new WebFX.SelectList()
The select-list constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.expand ↔ String
This property manages select-list's expandability options.$select(event) <private>
This private method is used to select items in the select-list.attributeChangedCallback(name, oldValue, newValue) <api>
When the following attribute values change: - 'expand': change the select-list's expandability optionconnectedCallback() <api>
Upon connection to the DOM, this method sets default attribute settings and sets the click event listener.disconnectedCallback() <api>
Upon disconnection from the DOM, this method removes the click event listener.getSelections() → Array<String>
Returns a list of the selected items in an array of strings. Items which are not text should have value attributes.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| sliderControl.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <slider-control>
Slider controls are used to set numeric values between a set range.
new WebFX.SliderControl()
The slider-control constructor executes the usual custom HTML initialization procedure by creating the shadow DOM. It also creates the ResizeObserver to react to changes in slider-control size and a MouseEventObserver to react to mouse events.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.clickAction ↔ String
This property manages the type of reaction to a click within the indicator track: { 'set','page' }.clickAmount ↔ Number
This property manages the paging amount, in a value between 0.0 and 1.0, when clickAction is set to page and snapToTicks is false.indicatorType ↔ String
This property manages the type of indicator: { 'round','cylinder','rsquare','rrect' }.majorTicks ↔ Integer
This property manages the number of major ticks used / displayed.minorTicks ↔ Integer
This property manages the number of minor ticks used / displayed between each major tick.onchange ↔ Function
This property manages the current callback procedure that is called when the slider-control's value has changed.ondrag ↔ Function
This property manages the current callback procedure that is called when the indicator is dragged.snapToTicks ↔ Boolean
This property manages the reaction to clicks in the indicator track if there are ticks present.tickColor ↔ Color
This property manages the color of the ticks used.tickStyle ↔ String
This property manages the style of ticks used: { 'top-left','bottom-right','both' }.value ↔ Number
This property manages the current value of the slider-control.attributeChangedCallback(name, oldValue, newValue) <api>
connectedCallback() <api>
Upon connection to the DOM, this method enables the ResizeObserver and MouseEventObserver.disconnectedCallback() <api>
Upon disconnection from the DOM, this method disables the ResizeObserver and MouseEventObserver.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| slidingPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <sliding-pane>
Sliding panes are multi-pane layout controllers used to adjust the widths of each pane by allowing the user to slide an inter-pane border.
new WebFX.SlidingPane()
The sliding-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.sliderWidth ↔ Number
This property manages the width of the slider border.attributeChangedCallback(name, oldValue, newValue) <api>
When the following attribute values change: - 'expand': change the vbox-pane's expandability optionconnectedCallback() <api>
Upon connection to the DOM, this method enables the observers.disconnectedCallback() <api>
For this control, the observers will be disconnected upon control disconnection.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| stackablePane.js | Javascript | Kenneth F. Guerin | Copyright © 2022-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <stackable-pane>
Stackable panes are single-column grids that are used to hold other elements.
new WebFX.StackablePane()
The stackable-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.attributeChangedCallback(name, oldValue, newValue) <api>
connectedCallback() <api>
Upon connection to the DOM, this method sets default attribute settings.disconnectedCallback() <api>
For this control, nothing happens when it is disconnected.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| svgPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains a drawing registry used by the svg-pane element and its derivatives.
This factory is a drawing method registry used by svg-pane and its derivatives.
new WebFX.SvgFactory()
The constructor creates the registry and installs the default factories.$alertCircleIconFactory() → String <private>
This private method builds the alert circle icon using a path element.$alertIconFactory() → String <private>
This private method builds the alert icon using a path element.$alertRingIconFactory() → String <private>
This private method builds the alert ring icon using a path element.$backstepIconFactory() → String <private>
This private method builds the back step icon using a path element.$checkmarkIconFactory() → String <private>
This private method builds the checkmark icon using a path element.$circleIconFactory() → String <private>
This private method builds the circle icon using a path element.$closeIconFactory() → String <private>
This private method builds the close icon using a path element.$diamondIconFactory() → String <private>
This private method builds the diamond icon using a path element.$downArrowIconFactory() → String <private>
This private method builds the down arrow icon using a path element.$downTriangleIconFactory() → String <private>
This private method builds the down triangle icon using a path element.$fileIconFactory() → String <private>
This private method builds the file icon using a path element.$folderIconFactory() → String <private>
This private method builds the folder icon using a path element.$fwdstepIconFactory() → String <private>
This private method builds the forward step icon using a path element.$gearIconFactory() → String <private>
This private method builds the gear icon using a path element.$hamburgerIconFactory() → String <private>
This private method builds the hamburger icon using a multi-segment path element.$hexagonIconFactory() → String <private>
This private method builds the hexagon icon using a path element.$hollowCircleIconFactory() → String <private>
This private method builds the hollow circle icon using a path element.$hollowDiamondIconFactory() → String <private>
This private method builds the hollow diamond icon using a path element.$hollowDownTriangleIconFactory() → String <private>
This private method builds the down triangle icon using a path element.$hollowHexagonIconFactory() → String <private>
This private method builds the hollow hexagon icon using a path element.$hollowLeftTriangleIconFactory() → String <private>
This private method builds the hollow left triangle icon using a path element.$hollowOctagonIconFactory() → String <private>
This private method builds the hollow octagon icon using a path element.$hollowRightTriangleIconFactory() → String <private>
This private method builds the right triangle icon using a path element.$hollowRsquareIconFactory() → String <private>
This private method builds the hollow rsquare icon using a path element.$hollowSquareIconFactory() → String <private>
This private method builds the hollow square icon using a path element.$hollowUpTriangleIconFactory() → String <private>
This private method builds the up triangle icon using a path element.$homeIconFactory() → String <private>
This private method builds the home icon using a path element.$infoCircleIconFactory() → String <private>
This private method builds the info circle icon using a path element.$infoIconFactory() → String <private>
This private method builds the info icon using a path element.$infoRingIconFactory() → String <private>
This private method builds the info ring icon using a path element.$installDefaults() <private>
$leftArrowIconFactory() → String <private>
This private method builds the left arrow icon using a path element.$leftTriangleIconFactory() → String <private>
This private method builds the left triangle icon using a path element.$loginIconFactory() → String <private>
This private method builds the login icon using a path element.$logoutIconFactory() → String <private>
This private method builds the logout icon using a path element.$minusIconFactory() → String <private>
This private method builds the minus icon using a path element.$octagonIconFactory() → String <private>
This private method builds the octagon icon using a path element.$opacityMenuIconFactory() → String <private>
This private method builds the opacity menu icon using a path element.$opaqueIconFactory() → String <private>
This private method builds the opaque icon using a path element.$pauseIconFactory() → String <private>
This private method builds the pause icon using a path element.$pencilIconFactory() → String <private>
This private method builds the pencil icon using a path element.$plusIconFactory() → String <private>
This private method builds the plus icon using a path element.$powerIconFactory() → String <private>
This private method builds the power icon using a path element.$pushpinIconFactory() → String <private>
This private method builds the push pin icon using a path element.$questionCircleIconFactory() → String <private>
This private method builds the question circle icon using a path element.$questionIconFactory() → String <private>
This private method builds the question icon using a path element.$questionRingIconFactory() → String <private>
This private method builds the question ring icon using a path element.$redoArrowIconFactory() → String <private>
This private method builds the redo arrow icon using a path element.$refreshArrowIconFactory() → String <private>
This private method builds the refresh arrow icon using a path element.$rightArrowIconFactory() → String <private>
This private method builds the right arrow icon using a path element.$rightTriangleIconFactory() → String <private>
This private method builds the right triangle icon using a path element.$rsquareIconFactory() → String <private>
This private method builds the rsquare icon using a path element.$saveIconFactory() → String <private>
This private method builds the save icon using a path element.$searchIconFactory() → String <private>
This private method builds the search icon using a path element.$squareIconFactory() → String <private>
This private method builds the square icon using a path element.$swapArrowsIconFactory() → String <private>
This private method builds the swap arrows icon using a path element.$thinDownArrowIconFactory() → String <private>
This private method builds the thin down arrow icon using a path element.$thinLeftArrowIconFactory() → String <private>
This private method builds the thin left arrow icon using a path element.$thinRedoArrowIconFactory() → String <private>
This private method builds the thin redo arrow icon using a path element.$thinRefreshArrowIconFactory() → String <private>
This private method builds the thin refresh arrow icon using a path element.$thinRightArrowIconFactory() → String <private>
This private method builds the thin right arrow icon using a path element.$thinSwapArrowsIconFactory() → String <private>
This private method builds the thin swap arrows icon using a path element.$thinUndoArrowIconFactory() → String <private>
This private method builds the thin undo arrow icon using a path element.$thinUpArrowIconFactory() → String <private>
This private method builds the thin up arrow icon using a path element.$translucentIconFactory() → String <private>
This private method builds the translucent icon using a path element.$transparentIconFactory() → String <private>
This private method builds the transparent icon using a path element.$undoArrowIconFactory() → String <private>
This private method builds the undo arrow icon using a path element.$upArrowIconFactory() → String <private>
This private method builds the up arrow icon using a path element.$upTriangleIconFactory() → String <private>
This private method builds the up triangle icon using a path element.$userIconFactory() → String <private>
This private method builds the user icon using a path element.$viewIconFactory() → String <private>
This private method builds the view icon using a path element.$zoomInIconFactory() → String <private>
This private method builds the zoom in icon using a path element.$zoomMenuIconFactory() → String <private>
This private method builds the zoom menu icon using a path element.$zoomOutIconFactory() → String <private>
This private method builds the zoom out icon using a path element.draw()
install(name, proc)
This method is used to install a drawing procedure into the factory.is_installed(name) → Boolean
This method is used to determine if a drawing procedure has been installed| File | Language | Author(s) | Copyright |
|---|---|---|---|
| svgPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <svg-icon>
The svg-icon is a collection of useful icons. It is implemented as an extension of svg-pane using the pane's factory property to handle the drawing function.
new WebFX.SvgIcon()
The svg-icon constructor executes the svg-pane's constructor and nothing else.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.baseType ↔ String
This property sets the base type.iconType ↔ String
This property sets the icon type.attributeChangedCallback(name, oldValue, newValue) <api>
When the 'icon' attribute changes, the icon will change.connectedCallback() <api>
Upon connection to the DOM, this method sets the svg-pane's factory property to handle drawing operations.disconnectedCallback() <api>
When this element is disconnected, the drawProc is removed.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| svgPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <svg-pane>
An svg-pane encapsulates an SVG image.
new WebFX.SvgPane()
The svg-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.drawProc ↔ Function
This property, set via the svg-pane's "draw" attribute, is called in response to drawing events.factory ↔ Function
This property, set directly via JS code, is called in response to drawing events instead of the drawProc.$redrawPane() <private>
This method will redraw the embedded SVG based either on the factory property or on the 'draw' attibute or 'draw' callback.attributeChangedCallback(name, oldValue, newValue) <api>
When the 'draw' attribute changes, the embedded SVG element will be replaced.connectedCallback() <api>
Upon connection to the DOM, this method sets the element's drawProc.disconnectedCallback() <api>
When this element is disconnected, the drawProc is removed.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| tabPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <tab-pane>
new WebFX.TabPane()
The tab-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.tabStyle ↔ String
This property determines the look & feel of the tab-selectors. Valid values are 'tabs' and 'buttons'.$deactivate() <private>
This private method is used to deactivate the current active tab-slot.$loadSelector(slot, selectorText, closable) <private>
This private method is used to attach a tab-slot to the tab-pane by creating its associated tab-selector.$trigger(event) <private>
This private method is used to conduct actions based on a successful mouse click on an tab-selector. The method will determine which tab-slot is associated with the tab-selector that was clicked.activateSlot(slotElement)
This private method is used to activate a particular tab-slot.activateSlot(nth)
This private method is used to activate a particular tab-slot.attributeChangedCallback(name, oldValue, newValue) <api>
When the tab-style attribute is changed, the tab-pane will change its tab-selectors from one style to another.connectedCallback() <api>
Upon connection to the DOM, this method sets the default tab-style to 'tabs' and sets the mouse-click event listener.disconnectedCallback() <api>
Upon connection to the DOM, this method removes the mouse-click event listener.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| tabPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <tab-selector>
A tab-selector is used with a tab-pane's shadow DOM in order to allow the user to expand / contract the tab-pane.
new WebFX.TabSelector()
The tab-selector constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.active ↔ Boolean
This property determines whether the tab-selector is in the active state or not.attributeChangedCallback(name, oldValue, newValue) <api>
For this control, nothing happens when an attribute is changed. The CSS handles look & feel changes.connectedCallback() <api>
Upon connection to the DOM, this method sets default attribute settings.disconnectedCallback() <api>
For this control, nothing happens when it is disconnected.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| tabPane.js | Javascript | Kenneth F. Guerin | Copyright © 2021-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <tab-slot>
A tab-slot is used to define the contents of each block of information within an tab-pane.
new WebFX.TabSlot()
The tab-slot constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.active ↔ Boolean
This property determines whether the associated tab-selector is in the active state or not.closable ↔ Boolean
This property determines whether the tab-slot's tab-selector will have a close icon or not.heading ↔ String
This property sets the value of the associated tab-selector in the shadow DOM.attributeChangedCallback(name, oldValue, newValue) <api>
When the following attribute values change: - 'heading': change the tab-selector's value based on the new heading value - 'active': show/hide the tab-pane's contents and update the tab-selector's active state - 'closable': change whether the tab-slot's tab-selector will have a close iconconnectedCallback() <api>
Upon connection to the DOM, this method sets default attribute settings and adds the private $trigger event listener.disconnectedCallback() <api>
Upon disconnection from the DOM, this method removes event listeners.| File | Language | Author(s) | Copyright |
|---|---|---|---|
| vboxPane.js | Javascript | Kenneth F. Guerin | Copyright © 2020-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <vbox-pane>
VBox panes are single-column grids that are used to hold other elements.
new WebFX.VBoxPane()
The vbox-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.expand ↔ String
This property manages vbox-pane's expandability options.attributeChangedCallback(name, oldValue, newValue) <api>
When the following attribute values change: - 'expand': change the vbox-pane's expandability optionconnectedCallback() <api>
Upon connection to the DOM, this method enables the MutationObserverdisconnectedCallback() <api>
Upon disconnection to the DOM, this method disables the MutationObserver| File | Language | Author(s) | Copyright |
|---|---|---|---|
| windowPane.js | Javascript | Kenneth F. Guerin | Copyright © 2023-2024 Brick Mill Games, LLC, All rights reserved. |
This module contains the implementation of the WebFX element: <window-pane>
Window panes are free-floating panes tied to a parent's visible area.
new WebFX.WindowPane()
The window-pane constructor executes the usual custom HTML initialization procedure by creating the shadow DOM.observedAttributes ↔ Array<String> <api>
This property lists the attributes that are managed as properties by this class.closable ↔ Boolean
This property manages window-pane's ability to close itself.onfloat ↔ String or Function
This property sets a procedure to be called when the window-pane is floated to the toponmove ↔ String or Function
This property sets a procedure to be called when the window-pane is movedonresize ↔ String or Function
This property sets a procedure to be called when the window-pane is resizedresizable ↔ Boolean
This property manages window-pane's ability to resize itself.title ↔ String
This property manages window-pane's title string.title-background ↔ String
This property manages window-pane's banner background.title-color ↔ String
This property manages window-pane's banner color.title-font ↔ String
This property manages window-pane's banner font.attributeChangedCallback(name, oldValue, newValue) <api>
When the following attribute values change: - 'closable': change the window-pane's closability option - 'resizable': change the window-pane's resizability option - 'mode': change the window-pane's positioning mode (absolute or relative) - 'title': change the window-pane's title - 'banner-background': change the window-pane's banner background - 'banner-color': change the window-pane's banner colorconnectedCallback() <api>
Upon connection to the DOM, this method enables the MouseEventObserver.disconnectedCallback() <api>
Upon disconnection from the DOM, this method disables the MouseEventObserver.