Options class (ComboBox)

ComboBox.Options()

new Options()

The ComboBox.Options type represents a set of configurable settings that can be applied to a control. These options allow you to customize the control's behavior and appearance. You can assign options to a control either by setting the Options property directly or by using the SetOptions() method, which provides a programmatic way to update one or more options at runtime.

Every option of the ComboBox.Options type has associated a property of the control. For instance, the option:

allowActions {string}, customizes the actions the user can perform once the user clicks or touches the control
is associated with the property:
AllowActions {string}, customizes the actions the user can perform once the user clicks or touches the control
which means that the following statements are equivalent:
oComboBox.Options = {allowActions: "scroll"}
oComboBox.SetOptions({allowActions: "scroll"})
oComboBox.AllowActions = "scroll"
oComboBox.SetAllowActions("scroll")
where oComboBox is an object of ComboBox type

Members

(static) align :string

The align field specifies the alignment of the drop-down panel relative to the control. The align field is composed by two parts separated by comma that specifies a point/corner of the control to coincide with a point/corner of the control, of "corner-control,corner-dropdown" type, where:
corner-control, corner-dropdown can be any of the following:
  • "TL", top-left corner
  • "TC", top-center point
  • "TR", top-right corner
  • "ML", middle-left point
  • "C", center of the object
  • "MR", middle-right point
  • "BL", bottom-left corner
  • "BC", bottom-center point
  • "BR", bottom-right corner

For example, the "BR,TR" value indicates that the bottom-right corner of the control coincides with the top-right corner of the drop-down panel (default), while the "BL,TL" value indicates that the bottom-left corner of the control coincides with the top-left corner of the drop-down panel.

The align field is mapped to the Align property, which means that the following statements are equivalent:

oComboBox.Options = {align: "BR,TR"}
oComboBox.SetOptions({align: "BR,TR"})
oComboBox.Align = "BR,TR"
oComboBox.SetAlign("BR,TR")
Type:
  • string
Example
"BR,TR" {string}, indicates that the bottom-right corner of the control coincides with the top-right corner of the drop-down panel (default)
"BL,TL" {string}, indicates that the bottom-left corner of the control coincides with the top-left corner of the drop-down panel
align

(static) allowActions :string

The allowActions field defines a list of actions separated by comma that the user can perform by drag or click on the control's content. The order of the actions is very important, as the control checks each action from left to right until it finds a matching action for the performed mouse/touch event. The first matched action is performed, and the rest of the actions are ignored. So if you want to perform a specific action once the user clicks an item, and perform another action if the user clicks an area that does not contain any item, you should place the first action before the second one in the AllowActions property.

The format of the property is:

"action(shortcut,shortcut,...),action(shortcut,shortcut,...)..."
where
  • "action", defines the action to perform (as defined below)

    Action Description Flags
    "d2" Shows the control's drop-down list (panel) once the user clicks the control's drop-down button
    "drag-drop" Performs drag and drop of the control (the control can be dropped inside or outside). The ExDrop(event, data) method of the target HTML element is called once the user drops the control. The event parameter contains information about the mouse/touch event. The data parameter contains information about the source object that initiated the drag/drop operation as {object, source, client, shape}

  • "shortcut", defines the item's button or/and the modifier-keys that are required to perform the action. The "shortcut" is a combination of none, one or more of the following values:
    • "Shift", indicates that the SHIFT key is pressed
    • "Ctrl" or "Control", indicates that the CTRL key is pressed
    • "Alt" or "Menu", indicates that the ALT key is pressed
    • "Meta" , indicates that the META key is pressed
    • "LButton", specifies that the mouse's left-button is pressed
    • "RButton", specifies that the mouse's right-button is pressed
    • "MButton", specifies that the mouse's middle/wheel-button is pressed
    • "Long", specifies that the action requires a "long" click or touch before it begins
    • "Double", specifies that the action requires a "double" click before it begins (this flag is available for non-dragable actions only such as "edit")
    • "+", indicates AND between values

The allowActions field is mapped to the AllowActions property, which means that the following statements are equivalent:

oComboBox.Options = {allowActions: "d2(Shift+LButton),drag-drop(Long)"}
oComboBox.SetOptions({allowActions: "d2(Shift+LButton),drag-drop(Long)"})
oComboBox.AllowActions = "d2(Shift+LButton),drag-drop(Long)"
oComboBox.SetAllowActions("d2(Shift+LButton),drag-drop(Long)")
Type:
  • string
Example
null {null}, indicates the control's default allowActions value
"" {string}, specifies that no operation is allowed once the user clicks or touches the control
"scroll" {string}, specifies that only "scroll" operation is allowed, no matter of the item's button or modifier-keys is pressed.
allowActions

(static) allowDrop :boolean

The allowDrop field specifies whether the control accepts drag-and-drop operations for local files. When enabled, users can drag files from their system and drop them onto the control, allowing the application to process or import the files directly. This feature enhances interactivity by providing a convenient way to add external data without requiring traditional file selection dialogs. The ondrop(event) method of the hosted control is automatically invoked when the user drops files onto the control. The method's event parameter provides information about the dropped files, including their names, sizes, and types.

The allowDrop field is mapped to the AllowDrop property, which means that the following statements are equivalent:

oComboBox.Options = {allowDrop: true}
oComboBox.SetOptions({allowDrop: true})
oComboBox.AllowDrop = true
oComboBox.SetAllowDrop(true)
Type:
  • boolean
Example
false {boolean}, no file can be drop into the control (default)
true {boolean}, the user can drag and drop files into the control
allowDrop

(static) allowResize :string

The allowResize field specifies whether the user can resize the control's drop-down portion of the control. The width and height attributes of the canvas hosting the ComboBox's host define the size of the control's drop-down portion. You can set the drop-down size programmatically by adjusting the canvas's width and height. When hosting an Exontrol component, use the exontrol.CC.Resize(<canvas>, [width], [height]) method to properly resize and render the control; otherwise, the drop-down will appear empty.

The allowResize field supports one of the following values:

  • "", the drop-down section cannot be resized by the user (default)
  • "both", the drop-down portion displays a mechanism for allowing the user to resize it, which may be resized both horizontally and vertically
  • "horizontal", the drop-down portion displays a mechanism for allowing the user to resize it in the horizontal direction
  • "vertical", the drop-down portion displays a mechanism for allowing the user to resize it in the vertical direction

The allowResize field is mapped to the AllowResize property, which means that the following statements are equivalent:

oComboBox.Options = {allowResize: "both"}
oComboBox.SetOptions({allowResize: "both"})
oComboBox.AllowResize = "both"
oComboBox.SetAllowResize("both")
Type:
  • string
Example
"" {string} or null {null}, the drop-down section cannot be resized by the user (default)
"both" {string}, the drop-down portion displays a mechanism for allowing the user to resize it, which may be resized both horizontally and vertically
allowResize

(static) cursors :string

The cursors field specifies the mouse cursor that is displayed when the pointer hovers over different parts of the control. It allows you to customize the cursor for specific areas - such as dates, events, headers, or interactive elements - providing visual feedback to the user about possible actions and enhancing the overall usability and interactivity of the control.

The format of the property is:

"cursor(part),cursor(part),..."
where:
  • "cursor", defines the CSS mouse cursor to display while cursor hovers the part
  • "part", defines the name of the part the cursor is applied on (as defined below)
The "cursor" can be any of the following:
Cursor Description
"alias"indicates a shortcut or alias will be created
"all-scroll"indicates scrolling in any direction
"auto"lets the browser decide the cursor based on context
"cell"indicates a table cell
"col-resize"indicates a column can be resized horizontally
"context-menu"indicates a context menu is available
"copy"indicates something will be copied
"crosshair"a precise crosshair cursor
"default"the default arrow cursor
"e-resize"resize east (right edge)
"ew-resize"resize horizontally
"grab"indicates an item can be grabbed
"grabbing"indicates an item is being grabbed
"help"indicates help information is available
"move"indicates something can be moved
"n-resize"resize north (top edge)
"ne-resize"resize northeast (top-right corner)
"nesw-resize"resize along the northeast–southwest axis
"no-drop"indicates dropping is not permitted
"not-allowed"indicates the action is not allowed
"ns-resize"resize vertically
"nw-resize"resize northwest (top-left corner)
"nwse-resize"resize along the northwest–southeast axis
"pointer"the pointer cursor (a hand with a pointing finger)
"progress"indicates background processing
"row-resize"indicates a row can be resized vertically
"s-resize"resize south (bottom edge)
"se-resize"resize southeast (bottom-right corner)
"sw-resize"resize southwest (bottom-left corner)
"text"the text selection cursor (I-beam)
"url(...)"uses a custom cursor image (with optional fallback)
"vertical-text"the vertical text selection cursor
"w-resize"resize west (left edge)
"wait"indicates the program is busy
"zoom-in"indicates zooming in
"zoom-out"indicates zooming out
The "part" can be any of the following:
Part Description
"anchor" (hyperlink)defines the mouse-cursor when the mouse pointer hovers the anchor (the <a> ex-HTML part marks an anchor or hyperlink element) (@since 2.2)
"button"defines the mouse-cursor when the mouse pointer hovers the drop-down button
"clear"defines the mouse-cursor when the mouse pointer hovers the clear button (@since 1.9)
"drag-drop"defines the cursor while the control is being dragged using the "drag-drop" action
"long"specifies the mouse-cursor to be shown as soon as a "long" click or touch action begins (see allowActions field)

The cursors property is mapped to the Cursors property, which means that the following statements are equivalent:

oComboBox.Options = {cursors: "pointer(button),text(anchor)"}
oComboBox.SetOptions({cursors: "pointer(button),text(anchor)"})
oComboBox.Cursors = "pointer(button),text(anchor)"
oComboBox.SetCursors("pointer(button),text(anchor)")
Type:
  • string
Example
"pointer(xxx,yy)" {string}, indicates that the "pointer" mouse cursor is shown while cursor hovers any "xxx" or "yyy" part of the control
cursors

(static) dropDown :boolean

The dropDown field specifies whether the control's drop-down panel is visible or hidden. When set to true, the drop-down panel is shown programmatically, allowing you to control when the panel appears based on user interactions or specific conditions in your application. This can be particularly useful for creating dynamic interfaces where the drop-down content needs to be displayed in response to certain events, such as clicking a button or hovering over a specific area of the control.

The dropDown field is mapped to the DropDown property, which means that the following statements are equivalent:

oComboBox.Options = {dropDown: true}
oComboBox.SetOptions({dropDown: true})
oComboBox.DropDown = true
oComboBox.SetDropDown(true)
Type:
  • boolean
Example
false {boolean}, the control's drop-down panel is hidden
true {boolean}, shows programmatically the control's drop-down panel
dropDown

(static) formatText :exontrol.DrawTextFormatEnum

The formatText field specifies the format to display the control's label. Use the formatText field to control the alignment, wrapping, clipping, and other formatting options for the text displayed within the control. By configuring the formatText field, you can ensure that the text is presented in a clear and visually appealing manner, enhancing readability and improving the overall user experience.

The exontrol.DrawTextFormatEnum type supports the following flags:

  • exTextAlignTop (0x00), justifies the text to the top of the rectangle
  • exTextAlignLeft (0x00), aligns text to the left
  • exTextAlignCenter (0x01), centers text horizontally in the rectangle
  • exTextAlignRight (0x02), aligns text to the right
  • exTextAlignVCenter (0x04), centers text vertically
  • exTextAlignBottom (0x08), justifies the text to the bottom of the rectangle.
  • exTextAlignMask (0x0F), specifies the mask for text's alignment.
  • exTextWordBreak (0x10), breaks words. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by the lpRect parameter. A carriage return-line feed sequence also breaks the line. If this is not specified, output is on one line.
  • exTextSingleLine (0x20), displays text on a single line only. Carriage returns and line feeds do not break the line.
  • exTextExpandTabs (0x40), expands tab characters. The default number of characters per tab is eight.
  • exPlainText (0x80), treats the text as plain text.
  • exTextNoClip (0x0100), draws without clipping.
  • exHTMLTextNoColors (0x0200), ignores the and tags.
  • exTextCalcRect (0x0400), determines the width and height of the text.
  • exHTMLTextNoTags (0x0800), ignores all HTML tags.
  • exTextPathEllipsis (0x4000), for displayed text, replaces characters in the middle of the string with ellipses so that the result fits in the specified rectangle. If the string contains backslash (\) characters, exTextPathEllipsis preserves as much as possible of the text after the last backslash.
  • exTextEndEllipsis (0x8000), for displayed text, if the end of a string does not fit in the rectangle, it is truncated and ellipses are added. If a word that is not at the end of the string goes beyond the limits of the rectangle, it is truncated without ellipses.
  • exTextWordEllipsis (0x040000), truncates any word that does not fit in the rectangle and adds ellipses.

The formatText field is mapped to the FormatText property, which means that the following statements are equivalent:

oComboBox.Options = {formatText: 0x2A}
oComboBox.SetOptions({formatText: 0x2A})
oComboBox.FormatText = 0x2A
oComboBox.SetFormatText(0x2A)
Type:
  • exontrol.DrawTextFormatEnum
Example
null {null}, centers the caption
32 or exontrol.DrawTextFormatEnum.exTextSingleLine {number}, defines a single-line caption
0x2A or exontrol.DrawTextFormatEnum.exTextSingleLine | exontrol.DrawTextFormatEnum.exTextAlignRight | exontrol.DrawTextFormatEnum.exTextAlignBottom {number}, defines a single-line caption right/bottom-aligned
formatText

(static) host :string|object|HTMLElement

The host field specifies the control or component to be displayed within the control's drop-down panel. It allows you to embed custom content - such as another control, input form, or interactive element - inside the drop-down area, enabling richer functionality and seamless integration of additional UI elements within the main control.

The host field is mapped to the Host property, which means that the following statements are equivalent:

oComboBox.Options = {host: ...}
oComboBox.SetOptions({host: ...})
oComboBox.Host = ...
oComboBox.SetHost(...)
Type:
  • string | object | HTMLElement
Examples
"id" {string} or id {HTMLElement}, refers to any HTML element of the current document, as an identifier (string) or as an HTMLElement type, to display within the control's drop-down panel
 exobj {object}, where exobj can be any of exontrol canvas-types as listed:

   {exontrol.Bezier}, The ExBezier/JS component displays Bézier curves. The Bézier curves are also used in the time domain, particularly in animation, user interface design and smoothing cursor trajectory in eye gaze controlled interfaces (requires "exontrol.bezier.js" library)
   {exontrol.Calendar}, The ExCalendar/JS component provides calendar capabilities for your application. A calendar is a system of organizing days for social, religious, commercial or administrative purposes. This is done by giving names to periods of time, typically days, weeks, months and years. A date is the designation of a single, specific day within such a system (requires "exontrol.calendar.js" library)
   {exontrol.Gantt}, The ExGantt/JS component is our approach to create timeline charts (also known as Gantt charts). Gantt chart is a time-phased graphic display of activity durations. Activities are listed with other tabular information on the left side with time intervals over the bars. Activity durations are shown in the form of horizontal bars (requires "exontrol.menu.js", "exontrol.tree.js", "exontrol.gantt.js" libraries)
   {exontrol.Gauge}, The ExGauge/JS library provides graphics capabilities to visually display and edit the amount, level, or contents of something. The view can show one or more layers, where each layer can display one or more transparent pictures, HTML captions which can be clipped, moved, rotated or combination of them, by dragging the mouse, rolling the mouse wheel, or using the keyboard (requires "exontrol.gauge.js" library)
   {exontrol.Graph}, The ExGraph/JS component provides charting and graphing capabilities for your web application. A chart or graph is a visual representation of data, in which "the data is represented by symbols, such as bars in a bar chart, lines in a line chart, or slices in a pie chart". Charts are often used to make it easier to understand large quantities of data and the relationships between different parts of the data (requires "exontrol.graph.js" library)  
   {exontrol.Menu}, The ExMenu/JS component provides menu-functionaly which includes top-level menus, context, popup, drop down or shortcut menus. A menu presents a list of items, commands, attributes, or states from which a user can choose. An item within a menu is known as a menu item, and may be configured to initiate an action, toggle a state on or off, or display a submenu of additional menu items when it is selected. A context menu is a menu in a graphical user interface (GUI) that appears upon user interaction, such as a right-click mouse operation (requires "exontrol.menu.js" library)
   {exontrol.OrgChart}, The ExOrgChart/JS component permits the totally automatic generation of organigrams. An organigram generally provides a clear picture of the hierarchical position of the various actors. The control shows a hierarchical display of nodes, each one having an HTML caption, pictures and icons aligned to any side of the node. Each node can have child-nodes, assistant-nodes or group-nodes (requires "exontrol.orgchart.js" library)
   {exontrol.Pivot}, The ExPivot/JS is our approach to provide data summarization, as a pivot table. A pivot-table can automatically sort, count, total or give the average of the data stored in one table or spreadsheet (requires "exontrol.menu.js", "exontrol.tree.js", "exontrol.pivot.js" libraries)
   {exontrol.RadialMenu}, The ExRadialMenu/JS (radial or pie menu) component is similar to the Microsoft's OneNote radial menu with ability to customize the appearance and functionality. The component is designed using tree structure so an item can hold none or more children, and so any item can be browsed, and show its children around it (requires "exontrol.radialmenu.js" library)
   {exontrol.Schedule}, The ExSchedule/JS library is our approach to provide scheduling of appointments into your web application. The ExSchedule/JS is a visual HTML5 component that shows a timeline view for multiple activities (event calendar). The time is displayed on the vertical (Y) axis and the activities are automatically arranged over a single or multiple dates (requires "exontrol.menu.js", "exontrol.calendar.js", "exontrol.icalendar.js", "exontrol.schedule.js" libraries)
   {exontrol.ScrollBar}, The ExScollBar/JS components provides scroll-bar/slider/track functionality for your application. A vertical or horizontal bar commonly located on the far right or bottom of a window that allows you to move the window viewing area up, down, left, or right. A slider or track bar is a graphical control element with which a user may set a value by moving an indicator
   {exontrol.Surface}, The ExSurface/JS lets you organize your objects to a surface. You can use the tool to generate organigrams, diagrams, graphs, flowcharts and so on (requires "exontrol.surface.js" library)
   {exontrol.SwimLane}, The ExSwimlane/JS lets you draw swim lane diagrams. A swim lane (or swimlane diagram) is a visual element used in process flow diagrams, or flowcharts, that visually distinguishes job sharing and responsibilities for sub-processes of a business process. Swim lanes may be arranged either horizontally or vertically (requires "exontrol.surface.js", "exontrol.swimlane.js" libraries)
   {exontrol.Tree}, The ExTree/JS component allows you to display and edit hierarchical-data. Features include: Multiple-Columns, Multiple-Views, Drag and Drop, Group-By, Filter-Prompt, Conditional-Format, Total Fields, and much more (requires "exontrol.menu.js", "exontrol.tree.js" libraries)
The following example shows how to display a calendar control within the control's drop-down panel:

 new exontrol.Calendar('cvsCalendar') {object}, creates a calendar control and displays it within the control's drop-down panel

where "cvsCalendar" is the id of a canvas element in the current document to host the calendar control
host

(static) label :string

The label field specifies the ex-HTML caption that is displayed within the control's label area. It supports formatted text, images allowing you to create rich, descriptive labels that enhance the control's appearance and provide contextual information to the user. The label is rendered by the host, so its visual appearance may vary depending on the host's implementation. When a Host is assigned to be displayed in the control's drop-down panel, the control's label is reset and the host becomes fully responsible for rendering any label content. The label field does not set or change any selected item, date, or value within the host; it only sets the label explicitly for the control when no host is specified.

The label field is mapped to the Label property, which means that the following statements are equivalent:

oComboBox.Options = {label: "ComboBox"}
oComboBox.SetOptions({label: "ComboBox"})
oComboBox.Label = "ComboBox"
oComboBox.SetLabel("ComboBox")
Type:
  • string
Example
null {null} or "" {string}, displays nothing
"&lt;b&gt;item" {string}, displays "item" word in bold
label

(static) locked :boolean

The locked field indicates whether the control is locked(protected) or unlocked. The locked control is protected against user interaction, so the user can't click the control's drop down to select new items, but the control can be focused and its content can be copied. The locked field is useful when you want to prevent users from changing the control's value while still allowing them to interact with the control in other ways, such as copying its content or focusing on it for accessibility purposes. While locked the drop down button looks grayed out, and the user can't click it to open the drop down.

The locked field is mapped to the Locked property, which means that the following statements are equivalent:

oComboBox.Options = {locked: true}
oComboBox.SetOptions({locked: true})
oComboBox.Locked = true
oComboBox.SetLocked(true)
Type:
  • boolean
Example
false {boolean}, unlocks the control (the control's drop down is available)
true {boolean}, locks the control (the control's drop down is not available)
locked

(static) pad :number|Array.<number>|string

The pad field defines the item's padding (space between the item's content and its border), as one of the following:
  • {number} a numeric value, to pad horizontal and vertical size with the same value
  • {(string|number[])} a "x,y" or [x,y] type to specify the padding on horizontal and vertical side

The pad field is mapped to the Pad property, which means that the following statements are equivalent:

oComboBox.Options = {pad: "8,4"}
oComboBox.SetOptions({pad: "8,4"})
oComboBox.Pad = "8,4"
oComboBox.SetPad("8,4")
Type:
  • number | Array.<number> | string
Example
null {null}, indicates that the default-padding field is used ([2,2])
0 {number}, indicates no padding
"8,4" {string}, increases the item's width with 2 * 8-pixels and item's height with 2 * 4-pixels
[8,4] {array}, increases the item's width with 2 * 8-pixels and item's height with 2 * 4-pixels
pad

(static) readOnly :boolean

The readOnly field indicates whether the control (including its host) is read-only. The read-only control allows the user to drop down but the hosted control is read-only, so the user can't select new items. The readOnly field is useful when you want to allow users to open the drop down and view its content, but prevent them from making any changes or selections within the drop down. While read-only the drop down button looks normal, and the user can click it to open the drop down, but the hosted control within the drop down is read-only and doesn't allow item selection. While locked the drop down button looks grayed out, and the user can't click it to open the drop down.

The readOnly field is mapped to the ReadOnly property, which means that the following statements are equivalent:

oComboBox.Options = {readOnly: true}
oComboBox.SetOptions({readOnly: true})
oComboBox.ReadOnly = true
oComboBox.SetReadOnly(true)
Type:
  • boolean
Example
false {boolean}, the control's drop down is available and the user can select new items
true {boolean}, the control's drop down is available but the user can't select items
readOnly

(static) shapes :string

The shapes field defines the visual shapes that each part of the control can display. It allows you to customize the control's appearance by specifying how elements such as dates, headers, or other components are rendered. By configuring the shapes field, you can create a more visually distinctive and intuitive interface, making it easier for users to interpret and interact with the control.

The format of the property is:

"shape(part),shape(part),..."
where:
  • "shape", defines the shape to apply on the UI part as one of the following:

    ◦ any of 140 color names any browser supports (such as red, blue, green, ...)
    ◦ hexadecimal colors, is specified with: #RRGGBB, where the RR (red), GG (green) and BB (blue) hexadecimal integers specify the components of the color. All values must be between 00 and FF (such as #0000ff which defines a blue background)
    ◦ hexadecimal colors with transparency, is specified with: #RRGGBBAA, where AA (alpha) value must be between 00 and FF (such as #0000ff80 which defines a semi-transparent blue background)
    ◦ RGB colors, is specified with the RGB(red, green, blue) function. Each parameter (red, green, and blue) defines the intensity of the color and can be an integer between 0 and 255( such as rgb(0,0,255) that defines a blue background)
    ◦ RGBA colors, are an extension of RGB color values with an alpha channel as RGBA(red, green, blue, alpha) function, where the alpha parameter is a number between 0.0 (fully transparent) and 1.0 (fully opaque) ( such as rgba(0,0,255,0.5) which defines a semi-transparent blue background)
    ◦ HSL colors, is specified with the HSL(hue, saturation, lightness) function, where hue is a degree on the color wheel (from 0 to 360) - 0 (or 360) is red, 120 is green, 240 is blue. saturation is a percentage value; 0% means a shade of gray and 100% is the full color. lightness is also a percentage; 0% is black, 100% is white. HSL stands for hue, saturation, and lightness - and represents a cylindrical-coordinate representation of colors (such as hsl(240, 100%, 50%) that defines a blue background)
    ◦ HSLA colors, are an extension of HSL color values with an alpha channel - which specifies the opacity of the object as HSLA(hue, saturation, lightness, alpha) function, where alpha parameter is a number between 0.0 (fully transparent) and 1.0 (fully opaque) (such as hsla(240, 100%, 50%,0.5) that defines a semi-transparent blue background)
    ◦ a JSON representation of the shape object to apply (while it starts with { character, such as '{"normal": {"primitive": "RoundRect","fillColor":"black","tfi": {"fgColor": "white"}}}')
    ◦ specifies the name of the field within the exontrol.Shapes.ComboBox object (while it starts with a lowercase letter, such as shitem which refers to exontrol.Shapes.ComboBox.shitem shape)
    ◦ specifies the name of the field within the exontrol.Shapes object (while it starts with an uppercase letter, such as Button which refers to exontrol.Shapes.Button shape)

  • "part", defines the name of the part the shape is applied on (as defined below)
The shapes property supports any of the following parts:
Part Description
"button"defines the visual-appearance to show the drop-down button
"clear"defines the visual-appearance to show the clear button (@since 1.9)

The shapes property is mapped to the Shapes property, which means that the following statements are equivalent:

oComboBox.Options = {shapes: "red(button),blue(clear)"}
oComboBox.SetOptions({shapes: "red(button),blue(clear)"})
oComboBox.Shapes = "red(button),blue(clear)"
oComboBox.SetShapes("red(button),blue(clear)")
Type:
  • string
Example
null {null}, specifies the default visual appearance
"" {string}, no shape (no visual appearance is applied to any part of the control)
"red(itemAlt)", "#FF0000(itemAlt)", "rgb(255,0,0)(itemAlt)", "rgba(255,0,0,1)(itemAlt)" {string}, shows alternate-items in red
'{"hover":{"fillColor":"black","tfi":{"fgColor":"white"}}}(item)' {string}, shows the item in white on a black-background, while the cursor hovers it
"xxx(d),yyy(d,m),zzz(y)"  {string}, specifies that the exontrol.Shapes.ComboBox.xxx combined with exontrol.Shapes.ComboBox.yyy object defines the visual appearance of "d" part of the control, exontrol.Shapes.ComboBox.yyy object defines the visual appearance of "m" part of the control and exontrol.Shapes.ComboBox.zzz object defines the visual appearance of "y" part of the control
shapes

(static) showClearButton :number

The showClearButton field specifies whether the control's clear-button is visible or hidden. The clear button clears the control's label and selection. The clear-button is displayed next to drop down button, and can be hidden, always visible or visible if required (for instance the drop down control has any selection).

The showClearButton field supports the following values:

  • 0, the clear-button is hidden
  • -1, the clear-button is always visible
The showClearButton field supports the following flags:
  • 1, the clear-button is visible only if the control's label/drop-down panel displays a non-empty value or contains any selection
  • 2, the clear-button is visible only if the pointer hovers the control

The showClearButton field is mapped to the ShowClearButton property, which means that the following statements are equivalent:

oComboBox.Options = {showClearButton: 3}
oComboBox.SetOptions({showClearButton: 3})
oComboBox.ShowClearButton = 3
oComboBox.SetShowClearButton(3)
Type:
  • number
Since:
  • 1.9
Example
0 {number}, the clear-button is hidden (default)
-1 {number}, the clear-button is always visible
3 {number}, the clear-button is visible only if required and the pointer hovers the control
showClearButton

(static) tfi :string|object

The tfi field applies font attributes to captions within the control. The tfi field can be defined using a string representation such as "b monospace 16" or as an object such as {bold: true, fontName: "monospace", fontSize: 16}. By default, the tfi field is null, so the canvas uses its own default font defined by exontrol.defGUIFont (typically "12px sans-serif"). CSS fonts applied to surrounding HTML elements do not affect the canvas; the canvas text is independent of page styles, and the default font can be changed by setting exontrol.defGUIFont.

The tfi field as string supports any of the following keywords (each keyword can be specified using first letters only such as "b" for "bold) separated by space characters:

  • bold, displays the text in bold (equivalent of <b> tag)
  • italic, displays the text in italics (equivalent of <i> tag)
  • underline, underlines the text (equivalent of <u> tag)
  • strikeout, specifies whether the text is strike-through (equivalent of <s> tag)
  • <fontName name>, specifies the font's family (equivalent of <font name> tag)
  • <fontSize size>, specifies the size of the font (equivalent of <font ;size> tag)
  • <fgColor CSSColor>, specifies the text's foreground color (equivalent of <fgcolor> tag)
  • <bgColor CSSColor>, specifies the text's background color (equivalent of <bgcolor> tag)
  • <shaColor CSSColor;width;offset>, defines the text's shadow (equivalent of <sha color;width;offset> tag)
  • <outColor CSSColor>, shows the text with outlined characters (CSScolor) (equivalent of <out color> tag)
  • <graColor CSSColor;mode;blend>, defines a gradient text (equivalent of <gra color;mode;blend> tag)

Any other word within the tfi field that's not recognized as a keyword is interpreted as:

  • name of the font (not a number), specifies the font's family (equivalent of <font name> tag)
  • size of the font (number), specifies the size of the font (equivalent of <font ;size> tag)

The tfi field as object supports any of the following fields:

  • bold {boolean}, displays the text in bold (equivalent of <b> tag)
  • italic {boolean}, displays the text in italics (equivalent of <i> tag)
  • underline {boolean}, underlines the text (equivalent of <u> tag)
  • strikeout {boolean}, specifies whether the text is strike-through (equivalent of <s> tag)
  • fontName {string}, specifies the font's family (equivalent of <font name> tag)
  • fontSize {number}, specifies the size of the font (equivalent of <font ;size> tag)
  • fgColor {string}, specifies the text's foreground color (CSScolor) (equivalent of <fgcolor> tag)
  • bgColor {string}, specifies the text's background color (CSScolor) (equivalent of <bgcolor> tag)
  • shaColor {object}, specifies an object of {color, width, offset} type that defines the text's shadow (equivalent of <sha color;width;offset> tag), where:
    • color {string}, defines the color of the text's shadow (CSScolor)
    • width {number}, defines the size of the text's shadow
    • offset {number}, defines the offset to show the text's shadow relative to the text
  • outColor {string}, shows the text with outlined characters (CSScolor) (equivalent of <out color> tag)
  • graColor {object}, specifies an object of {color, mode, blend} type that defines a gradient text (equivalent of <gra color;mode;blend> tag), where:
    • color {string}, defines the gradient-color (CSScolor)
    • mode {number}, defines the gradient direction as 0 (left-right), 1 (default, top-bottom), 2 (left-center-right), and 3 (top-center-bottom)
    • blend {number}, defines the gradient blend as a value between 0 and 1

CSSColor or CSS legal color values can be specified by the following methods:

  • Hexadecimal colors, is specified with: #RRGGBB, where the RR (red), GG (green) and BB (blue) hexadecimal integers specify the components of the color. All values must be between 00 and FF. For example, #0000ff value is rendered as blue, because the blue component is set to its highest value (ff) and the others are set to 00.
  • Hexadecimal colors with transparency, is specified with: #RRGGBBAA, where AA (alpha) value must be between 00 and FF. For example, #0000ff80 defines a semi-transparent blue.
  • RGB colors, is specified with the RGB(red, green, blue) function. Each parameter (red, green, and blue) defines the intensity of the color and can be an integer between 0 and 255. For example, rgb(0,0,255) defines the blue color.
  • RGBA colors, are an extension of RGB color values with an alpha channel as RGBA(red, green, blue, alpha) function, where the alpha parameter is a number between 0.0 (fully transparent) and 1.0 (fully opaque). For example, rgba(0,0,255,0.5) defines a semi-transparent blue.
  • HSL colors, is specified with the HSL(hue, saturation, lightness) function, where hue is a degree on the color wheel (from 0 to 360) - 0 (or 360) is red, 120 is green, 240 is blue. saturation is a percentage value; 0% means a shade of gray and 100% is the full color. lightness is also a percentage; 0% is black, 100% is white. HSL stands for hue, saturation, and lightness - and represents a cylindrical-coordinate representation of colors. For example, hsl(240, 100%, 50%) defines the blue color.
  • HSLA colors, are an extension of HSL color values with an alpha channel - which specifies the opacity of the object as HSLA(hue, saturation, lightness, alpha) function, where alpha parameter is a number between 0.0 (fully transparent) and 1.0 (fully opaque). For example, hsla(240, 100%, 50%,0.5) defines a semi-transparent blue.
  • Predefined/Cross-browser color names, 140 color names are predefined in the HTML and CSS color specification. For example, blue defines the blue color.

The tfi field is mapped to the Tfi property, which means that the following statements are equivalent:

oComboBox.Options = {tfi: "b monospace 16 <fg blue>"}
oComboBox.SetOptions({tfi: "b monospace 16 <fg blue>"})
oComboBox.Tfi = "b monospace 16 <fg blue>"
oComboBox.SetTfi("b monospace 16 <fg blue>")
Type:
  • string | object
Example
null {null}, the tfi field is ignored
"bold monospace 16 &lt;fg blue&gt;" {string}, defines Monospace font of 16px height, bold and blue
{bold: true, fontName: "monospace", fontSize: 16, fgColor: "blue"} {object}, defines Monospace font of 16px height, bold and blue
tfi

(static) toolTipDelay :number

The toolTipDelay field specifies the amount of time the mouse pointer must hover over an object before the tool tip is displayed. Adjusting this value allows you to control how quickly tool tips appear, improving usability and user experience. Setting the property to 0 will cause tool tips to appear immediately when the mouse pointer hovers over an object, while setting it to a higher value (e.g., 128) will introduce a delay before the tool tip is shown, allowing users to avoid accidental tool tip pop-ups when quickly moving the mouse across the control.

The toolTipDelay property is mapped to the ToolTipDelay property, which means that the following statements are equivalent:

oComboBox.Options = {toolTipDelay: 128}
oComboBox.SetOptions({toolTipDelay: 128})
oComboBox.ToolTipDelay = 128
oComboBox.SetToolTipDelay(128)
Type:
  • number
Example
0 {number}, the tooltip is shown "immediately"
128 {number}, the tooltip is displayed in 128 ms.
toolTipDelay

(static) toolTipPopDelay :number

The toolTipPopDelay field specifies the period in ms of time the tool top remains visible if the mouse pointer is stationary within a control. Adjusting this value allows you to control how long tool tips stay visible, improving usability and user experience. Setting the property to 0 will cause tool tips to disappear immediately when the mouse pointer stops moving, while setting it to a higher value (e.g., 5000) will allow tool tips to remain visible for a longer period of time, giving users more time to read the information provided in the tool tip. The toolTipDelay field specifies the amount of time the mouse pointer must hover over an object before the tool tip is displayed. The toolTipWidth field indicates the max-width of the control's tooltip (in pixels).

The toolTipPopDelay property is mapped to the ToolTipPopDelay property, which means that the following statements are equivalent:

oComboBox.Options = {toolTipPopDelay: 5000}
oComboBox.SetOptions({toolTipPopDelay: 5000})
oComboBox.ToolTipPopDelay = 5000
oComboBox.SetToolTipPopDelay(5000)
Type:
  • number
Example
0 {number}, no tooltip is shown for any object (disabled)
-1 {number}, the tooltip stays indefinitely (negative)
1000 {number}, the tooltip is visible for 1 second
toolTipPopDelay

(static) toolTipWidth :number

The toolTipWidth field indicates the max-width of the control's tooltip (in pixels). Adjusting this value allows you to control the width of tool tips, improving readability and user experience. Setting the property to 0 will cause tool tips to have no maximum width, allowing them to expand as needed to fit their content, while setting it to a specific value (e.g., 300) will limit the width of tool tips, causing longer content to wrap within the specified width, making it easier for users to read and understand the information provided in the tool tip. The toolTipDelay field specifies the amount of time the mouse pointer must hover over an object before the tool tip is displayed. The toolTipPopDelay field specifies the period in ms of time the tool top remains visible if the mouse pointer is stationary within a control.

The toolTipWidth property is mapped to the ToolTipWidth property, which means that the following statements are equivalent:

oComboBox.Options = {toolTipWidth: 300}
oComboBox.SetOptions({toolTipWidth: 300})
oComboBox.ToolTipWidth = 300
oComboBox.SetToolTipWidth(300)
Type:
  • number
Example
0 {number}, no tooltip is shown for any object (disabled)
-1 {number}, the tooltip's content is displayed on a single line (without limit the width of it)
300 {number}, the tooltip's max-width is 300 pixels
toolTipWidth

(static) zoom :number

The zoom field defines the zoom factor of the control's label. The zoomLevels field defines the levels of the zoom-factor the control is allowed to magnify. The zoom field can be any value between 10 (10%) and 1000 (1000%). The control automatically adjusts its zoom factor when the browser's zoom changes, ensuring that the content is displayed optimally.

The zoom field is mapped to the Zoom property, which means that the following statements are equivalent:

oComboBox.Options = {zoom: 150}
oComboBox.SetOptions({zoom: 150})
oComboBox.Zoom = 150
oComboBox.SetZoom(150)
Type:
  • number
Example
null {null}, Specifies normal-view (100%)
150 {number}, Indicates that the control's label is magnfied to 150%
zoom

(static) zoomLevels :string

The zoomLevels field defines the zoom-levels the user can magnify the control's content (specifies a list of numbers separated by comma that indicates the zoom-levels/zoom-levels the control's content is allowed to zoom). The control automatically adjusts its zoom factor when the browser's zoom changes, ensuring that the content is displayed optimally.

The zoomLevels field is mapped to the ZoomLevels property, which means that the following statements are equivalent:

oComboBox.Options = {zoomLevels: "50,100,150,200"}
oComboBox.SetOptions({zoomLevels: "50,100,150,200"})
oComboBox.ZoomLevels = "50,100,150,200"
oComboBox.SetZoomLevels("50,100,150,200")
Type:
  • string
Since:
  • 5.2
Example
null {null}, Specifies that the control's zoom factor is always 100%
150 {number}, Specifies that the control's zoom factor is always 150%
"50,100,200,350" {string}, Indicates that the zoom-factor can be any of selected values, and the levels of zoom-factor is 50% to 350%
zoomLevels