recursal/Fanatic-Fandom huggingface dataset:
CapStyle

Specifies how the ends of lines and dashes are drawn.Syntax:

```
set the capStyle [of graphic] to <style>

```

Examples:

```
set the capStyle of graphic "dashedRectangle1" to "round"

```

```
# create a graphic object and set several of its properties
create graphic "newline"
set the style of graphic "newline" to "line"
set the points of graphic "newline" to 50,50 & return & 200,200
set the lineSize of graphic "newline" to 6
set the capStyle of graphic "newline" to "butt"

```

Set the **capStyle** property to specify how the ends of lines
and dashes are drawn.

Setting the **capStyle** property changes the appearance of line and
dash ends for graphic objects. If the graphic's
lineSize property is 1, the setting of the **capStyle** has no effect.

This only affects polygon, freehand curve and line
graphics which have their antialiased set to true.

Setting the roundEnds of a graphic to true sets the
**capStyle** of the graphic to "round".
Setting the roundEnds of a graphic to false sets the **capStyle** of
the graphic to "butt".

See also: graphic (object),antialiased (property),dashes (property),lineSize (property),roundEnds (property),
BrowserClick

Sent when the mouse is clicked in a browser object.Syntax:

```
XBrowser_Click <elementId>, <instanceId>

```

Examples:

```
on browserClick pInstanceId, pElementId
  if pElementId is "help" then
    helpShowPopup
  end if
end browserClick

```

The **browserClick** message is sent to the current card of a stack
containing a browser object when the mouse is clicked in the browser.

The **browserClick** message is only sent if advanced browser
messages are turned on. To turn on advanced browser messages use the
following command:

revBrowserSet <instanceId>, "messages", "true"

The **browserClick** message is currently only available on Windows.

The id of an html element is the element's "id" attribute. For example
<div id="navbar">. As this attribute is optional in most cases,
not all html elements will have an id. If the html element that the
mouse was clicked over does not have an id, then the elementId
parameter will be empty.

The **browserClick** message is not sent on OS X due to lack of
system support in the underlying browser object.

For general information on using the browser library, see the
notes in the revBrowserOpen function reference.

Parameters:

* instanceId: The integer identifier of the browser object
* elementId: The id of the html element that was clicked ]]\*Note:\* The browserClickmessage is only sent if advanced browser messages are turned on. To turnon advanced browser messages use the following command: revBrowserSetinstanceId, "messages", "true" The browserClick message is currentlyonly available on Windows.The id of an html element is the element's"id" attribute. For example div id="navbar". As this attribute isoptional in most cases, not all html elements will have an id. If thehtml element that the mouse was clicked over does not have an id, thenthe elementId parameter will be empty. ]]\*Note:\* The browserClick messageis not sent on OS X due to lack of system support in the underlyingbrowser object. ]]\*Note:\* For general information on using the browserlibrary, see the notes in the revBrowserOpen function reference.

See also: browserOver (message),
Creating a livecode plugin

A livecode plugin is a normal stack located in:

* **Windows:** My Documents/My LiveCode/Plugins
* **OS X:** ~/Documents/My LiveCode/Plugins
* **Linux:** ~/my\_livecode/Plugins/

Plugins saved in these folders appear in Development-> Plugins menu.

Usually a plugin operate with controls of another stack, the stack that you are currently programming, so the *plugin stack* have to use special keyword to refer to the actual stack.

This keywords are:

* Topstack
* SelectedObject

The topstack is current used stack. Example

```
put the effective fileName of the TopStack

```

The selectedObject or selectedObjects returns the name(s) of the selected object(s).
Example:

```
set the width of the selectedObject to 100

```
BorderPattern

Specifies the pattern of an object's border.Syntax:

```
set the borderPattern of <object> to {empty | <patternNumber> | <imageID>}

```

Examples:

```
set the borderPattern of group "Nav" to myPattern

```

Use the **borderPattern** property to specify the border pattern of a
button(keyword) or scrollbar.

Pattern images can be color or black-and-white.

```
To be used as a pattern on Mac OS
systems, an image must be 128x128 pixels or less, and both its

```

height and width must be a power of 2. To be used on Windows and
Unix systems, height and width must be divisible by 8. To
be used as a fully cross-platform pattern, both an image's dimensions
should be one of 8, 16, 32, 64, or 128.

The **borderPattern** of controls is drawn starting at
the control's upper right corner: if the
control(keyword) is moved, the pattern does not shift.

Setting the **borderPattern** of an object(glossary) to empty allows the
**borderPattern** of the object's owner to show through. Use
the effective keyword to find out what color is used for the
object(glossary), even if its own **borderPattern** is empty.

If the object's showBorder property is false, the **borderPattern** has
no effect.

The setting of the **borderPattern** property has different effects,
depending on the object type:

* The **borderPattern** of a stack, card, or group determines the

```
 **borderPattern** of each object(glossary) in the stack, card, or
 group that does not have its own **borderPattern**.

```

* The **borderPattern** of a button(keyword) determines the pattern of

```
 the border around the button(keyword). If the
 button's style is checkbox or radioButton, the
 **borderPattern** has no effect. If the button(keyword) is a [[button
 menu]], the **borderPattern** has no effect unless the
 button's menuMode property is set to comboBox or
 popup. If the button's threeD property is set to true, the
 **borderPattern** has no effect regardless of the
 button's style.

```

* The **borderPattern** of a field(keyword) has no effect, except for

```
 the border around a scrolling field's scrollbar. The
 field's **borderPattern** also determines the pattern of
 the outline around any text in the field(keyword) whose textStyle
 is set to "box".

```

* The **borderPattern** of a scrollbar determines the pattern of the

```
 border surrounding the scrollbar.

```

* The **borderPattern** of a graphic, audio clip, video clip, or

```
 image has no effect.

```

* The **borderPattern** of a player or EPS object(glossary)

```
 determines the pattern of the border around the object(glossary). If
 the object's threeD property is set to true, the
 **borderPattern** has no effect.

```

If an object's **borderPattern** is set, the pattern is shown instead of
the color specified by borderColor.

See also: EPS (object),button (object),field (object),stack (object),control (object),textStyle (property),pixels (property),patterns (property),width (property),threeD (property),height (property),style (property),markerFilled (property),borderWidth (property),menuMode (property),foregroundPattern (property),owner (property),shadowPattern (property),borderColor (property),
Back

Designates a location in the message path after an object's stack, or the most recently visited card.

Examples:

```
insert the script of card button 9 into back

```

```
go back

```

Use the **back** keyword to return to the most recently visited card, or to designate a backScript.

When used with the go command, the **back** keyword designates the card the user visited most recently. The statement **go back** returns to that card.

When used with the insert script or remove script command, the back keyword designates a backScript which is to be placed in the message path after the stack.

See Also: backScripts Function, front Keyword, FrontScripts
BrowserNewInstance

Sent when a new browser instance is created.Syntax:

```
XBrowser_NewInstance <instanceId>

```

Examples:

```
on browserNewInstance pInstanceId
  put pInstanceId & return after sInstances
end browserNewInstance

```

The **browserNewInstance** message is sent to the current card of the
stack when a new browser object is created in the stack's window.

For general information on using the browser library, see the
notes in the revBrowserOpen function reference.

Parameters:

* instanceId: The integer identifier of the new browser object ]]\*Note:\* For generalinformation on using the browser library, see the notes in therevBrowserOpen function reference.

See also: revBrowserOpen (function),revBrowserOpen function (function),browserNewUrlWindow (message),
ConvertOctals

Specifies whether numbers with a leading zero are assumed to be octal numbers.Syntax:

```
set the convertOctals to {true | false}

```

Examples:

```
set the convertOctals to true

```

Use the **convertOctals** property to make it easier to work with
octal numbers.

If the **convertOctals** property is set to true, numbers that start
with a zero are treated as octal (base 8) numbers, instead of
decimal (base 10). If the **convertOctals** is false, all numbers
(except hexadecimal numbers, which start with 0x) are treated as
decimal.

Since the **convertOctals** is a local property, its value is reset to
false when the current handler finishes executing. It
retains its value only for the current handler, and setting it in one
handler does not affect its value in other handlers it
calls.
Android: Geometry issues

One of the most problematic issues developing on a mobile device like Android is the geometry property.

The geometry property is useful to set automatic dimensions and resizing and scaling when your stack is resized, unfortunately **on a mobile device this doesn't work!**

You can't call *revUpdateGeometry either*, because it doesn't work at all!

You have to manually create a message in every card that resizes every element in the card or use a Livecode plugin called **Native geometry**: http://www.nativesoft.net/products/nativegeometry/

For pure graphic applications Livecode now supports the stretch of the screen, where the screen adapts to fit the screen. This screen manipulation deforms all the result, so you can use it for video games, but not for texts. The property is **fullscreen**:

```
 set the fullscreenmode of this stack to  "exactFit"

```

You can choose different full screen stretch types changing this property between:

* empty (default)
* "exactFit"
* "letterbox"
* "noBorder"
* "noScale"

When should the card elements geometry be updated?

First of all on opening the card, because every mobile device has a different screen size.

Second of all on rotation, if you permitted it.

Livecode doesn't automatically set rotation. Instead you have to declare which types of orientation you want to allow by using **mobileSetAllowedOrientations**. For example:

```
 mobileSetAllowedOrientations    "portrait,portrait upside down,landscape left,landscape right"

```

On mobile Livecode always expands the stack in order to fill the screen.
Corian

Corian is a dual Water/Psychic type Pokemon.

It evolves from Magean at level 32. It is the final form of Eggagi.

## Biology

### Physiology

Corian is a large, blue turtle standing on its hind legs with a light blue belly. They have long flipper like arms and stout legs with claws the same color as their coral. Their sturdy shells are this color as well. The coral upon their heads has grown, becoming spikes. They are always seen with some form of magical energy around them.

### Special Abilities

Corian prefer to use their magical abilities rather than their physical abiliites. Their shells are often used for protection, while they attack with their magical energy and torrents of water. Their energy is so strong that they can sense their trainer's thoughts.

### Behavior

While strong, these Pokemon are incredibly gentle. They are often seen protecting and teaching younger members of their evolutionary line. When asleep, they retreat into their massive shells for protection.

### Habitat

Corian make their homes in seaside caves lined with sand. This way, they remain out of sight with easy access to the ocean. They are extremely rare in the wild, and most now live in captivity.

## Game Data

### Stats

 * Minimum stats are calculated with 0 EVs, IVs of 0, and a hindering nature, if applicable.

* Maximum stats are calculated with 252 EVs, IVs of 31, and a helpful nature, if applicable.

### Learnset

#### By Leveling Up

 * A level of "Start" indicates a move that will be known by a Corian obtained at level 1
* **Bold** indicates a move that gets STAB when used by Corian
* *Italic* indicates a move that gets STAB only when used by an evolution of Corian

#### By TM/HM

 * **Bold** indicates a move that gets STAB when used by Corian
* *Italic* indicates a move that gets STAB only when used by an evolution of Corian

#### By Breeding

 * Moves marked with an asterisk (\*) must be chain bred onto Corian
* **Bold** indicates a move that gets STAB when used by Corian
* *Italic* indicates a move that gets STAB only when used by an evolution of Corian

#### By Move Tutor

 * **Bold** indicates a move that gets STAB when used by Corian
* *Italic* indicates a move that gets STAB only when used by an evolution of Corian

## Trivia

### Origin

Corian is designed after a giant, bipedal turtle.

### Name Origin

Corian's name comes from the words *Coral* and *Magician*.
CurrentTimeChanged

Sent to a player when the user switches to another frame.Syntax:

```
currentTimeChanged <newTime>

```

Examples:

```
on currentTimeChanged theInterval -- display the time in a field
  put theInterval into field "Time Code"
end currentTimeChanged

```

Handle the **currentTimeChanged** message if you want to do something when
the user changes the current time in a player.

The user can change the current time by clicking in the controller bar
or by using the arrow keys when the player is the active (focused)
control.

The number of intervals per second is specified by the player's
timeScale property. The total number of intervals is given in the
player's duration property.

The actual process of changing the player's current time is not
triggered by the **currentTimeChanged** message, so trapping the
message and not allowing it to pass does not prevent the user from
changing the player's current time manually.

Changes:
The newTime parameter was introduced in version 2.0. In previous
versions, the currentTimeChanged message did not have a parameter.

Parameters:

* newTime: The number of the interval where the player is after the change.

See also: playStarted (message),playPaused (message),selectionChanged (message),player (object),callbacks (property),duration (property),
Checkmark

Has no effect and is included in LiveCode for compatibility with imported HyperCard stacks.Syntax:

```
set the checkmark of <menuItem> to {true | false}

```

In HyperCard, the **checkmark** property determines whether a [[menu
item]] has a checkmark next to it.

A handler can set the **checkmark** to any value without causing a
script error, but the actual checkmark is not changed.
Box

Used with the textStyle property to specify that a chunk of text in a field has a plain box drawn around it.

Examples:

```
set the textStyle of the selectedChunk to box

```

Use the box keyword to emphasize text by drawing a box around it.

 Datei:Find1.jpg
 Datei:Tabelle7.png
The box is drawn in the object's borderColor and borderPattern.

If the text crosses more than one screen line, a box is drawn around each line of the text.

If the text has mixed styles, a separate box is drawn around each style run. For example, if three words are boxed and the last is also boldface, a box is drawn around the first two words, and another box is drawn around the boldface word.

An object or chunk of a field may have the box or threeDBox style, but not both at once.

 Datei:Box3d.png
See Also: borderColor Property, plain Keyword, textStyle Property, threeDBox Keyword
Addmax

addMax Gibt einen der Übertragungsmodi an, die mit der Eigenschaft ink verwendet werden können.

*ink (Gibt die Art der Transparenz an, mit der ein Objekt gezeichnet wird.)*

Beispiele:

```
set the ink of button "Click Here" to addMax

```

Verwenden Sie das Schlüsselwort addMax, um den Bereich unter einem Objekt auszuwaschen.

Die ink -Eigenschaft bestimmt, wie die Farben eines Objekts mit den Farben der Pixel unter dem Objekt kombiniert werden, um zu steuern, wie die Farbe des Objekts angezeigt wird. Wenn der addMax-Modus verwendet wird, wird jede Komponente des Objekts color (rot, grün und blau) mit der entsprechenden Komponente der darunter liegenden Farbe verglichen, und das Maximum von jedem wird für die angezeigte Farbe verwendet.

Angenommen, die Farbe eines Objekts ist 30,70,150 und die Farbe der Pixel unter dem Objekt ist 60,40,100. Wenn der addMax-Modus verwendet wird, ist die angezeigte Farbe des Objekts 60,70,150.

Der addMax-Modus kann nur auf Mac OS-Systemen verwendet werden. Auf Unix- und Windows-Systemen erscheinen Objekte, deren ink-Eigenschaft auf diesen Modus eingestellt ist, so als ob ihre ink auf srcCopy eingestellt wäre.

Eine Liste aller Übertragungsmodi finden Sie auf der Übertragungsmodus-Glossarseite zur leichteren Bezugnahme.

Siehe auch: srcCopy, notSrcCopy
BrushPattern

Specifies the pattern used to paint with the Brush tool and to fill shapes in an image.Syntax:

```
set the brushPattern to {<patternNumber> | <imageID>}

```

Examples:

```
set the brushPattern to 204

```

Use the **brushPattern** property to change the pattern used with the
bucket, spray can, and brush paint tools, and for the
interior of filled shapes.

Pattern images can be color or black-and-white.

```
To be used as a pattern on Mac OS
systems, an image must be 128x128 pixels or less, and both its

```

height and width must be a power of 2. To be used on Windows and
Unix systems, height and width must be divisible by 8. To
be used as a fully cross-platform pattern, both an image's dimensions
should be one of 8, 16, 32, 64, or 128.

If the **brushPattern** has been set since the last time the brushColor
was set, the pattern is used instead of the color specified by
brushColor. In other words, the last-set property takes priority.

See also: brushColor (property),height (property),penPattern (property),pixels (property),width (property),
AlwaysBuffer

Determines whether the contents of windows, players, and images are buffered offscreen.Syntax:

```
set the alwaysBuffer of {<stack> | <image> | <player>} to {true | false}

```

Examples:

```
set the alwaysBuffer of this stack to true

```

```
set the alwaysBuffer of image "Smile" to false

```

```
set the alwaysBuffer of the templatePlayer to true

```

Use the **alwaysBuffer** property to eliminate unwanted flicker when
objects are being redrawn. This property
is especially useful for eliminating flicker when using animation in a
stack.

Prior to 2.7, setting the **alwaysBuffer** of a stack to true would
cause the stack's display to be double-buffered, eliminating
flicker. However, 2.7 introduced a new rendering model which
double-buffers a stack's contents as and when required. As a
result, setting the **alwaysBuffer** of a stack no longer has any
effect.

Setting an image's **alwaysBuffer** property to true forces the
image to uncompress immediately, even if the image is hidden. This
speeds up using the show command to display an image. Setting the
**alwaysBuffer** property of all images to true is equivalent to
setting the global bufferHiddenImages property to true.

Setting a player's **alwaysBuffer** property to true forces the
movie to be drawn in an offscreen buffer. This prevents the movie from
flickering when other objects (such as buttons) are
drawn on top of it. It also allows the current frame to be seen when the
card is printed.

If a player's movie contains only sound with no visual track,
the setting of its **alwaysBuffer** property has no effect. If a
player's **alwaysBuffer** is false, the movie it contains is
drawn in front of all objects. The visual effect
command does not affect the screen area inside the rectangle of a
player whose **alwaysBuffer** is false. If a player's
**alwaysBuffer** is true, it cannot be controlled with the [[controller
bar]] and must be operated by script control.

Setting a player's **alwaysBuffer** to true always
increases memory usage, and may make movie playing more jerky.

Changes:
This property was removed from the Windows platform in version 8.1.0,
due to the change of player implementation from QuickTime to DirectShow.

See also: lock screen (command),global (command),heapSpace (function),stacks (function),hasMemory (function),card (object),button (object),image (object),player (object),stack (object),screenSharedMemory (property),dontUseQT (property),script (property),constantMask (property),bufferHiddenImages (property),
Create stack

Makes a new blank stack.

Syntax:

```
create [invisible] stack [stackName [with background]]

```

Synonyms: **new stack**

Examples:

```
create stack "Test"

```

```
create stack "Resources" with background "Standard Navigation"

```

The *stackName* is the name of the newly-created stack. If you don't specify a *stackName*, the new stack's name is the value of the seconds function at the time of creation.

The *background* is a reference to any group in the defaultStack. This group, if specified, is included in the new stack.

The newly created stack is not saved to a file until you explicitly save it. If you close it without saving it, the stack disappears.

If you use the *create invisible stack* form, the stack is created with its visible property set to false, so it cannot be seen. Use this form to create a hidden window, change its appearance or position, then make it visible.

The stack created when create stack is executed is a clone of the templateStack.

If you create a stack without giving it a name, for example:

```
create stack

```

the actual name of the stack is "Stack " & the seconds (ie. "Stack 1241648039")

If you want the destroyStack of a new stack created from a "create stack" command to be true, then you need to "set the destroyStack of the templateStack to true" first.

When creating a stack the "name" of the stack is returned in the "it" variable.

See Also: clone Command, create Command, save Command, create card Command, stackFileType Property, templateStack Keyword, newStack Message
BackgroundNames

Reports the backgrounds in a stack.Syntax:

```
get the backgroundNames of <stack>

```

Examples:

```
put the backgroundNames of this stack after allObjectsList

```

Use the **backgroundNames** property to find out which
backgrounds are available.

The **backgroundNames** is the list of all backgrounds in the
stack whose backgroundBehavior property is set to true, whether
they appear on the current card or not. If a group(command) in the
stack contains groups, only the top-level
groups are reported.

To find out which groups are placed on a card, use the groupNames
property.

Changes:
In versions before 1.1, groupNames and backgroundNames were synonyms and
could be used interchangeably.

See also: stack (object),backgroundBehavior (property),
Crlf

Equivalent to a carriage return (ASCII 13 or Control-M) followed by a line feed (ASCII 10 or Control-J). It's usually better to adopt the return word, because it is adapted to the current system.

Examples

```
read from file myData until CRLF

```

```
put line x of field "Information" & CRLF after dataToExport

```

Use the CRLF constant as an easier-to-read substitute for numToChar(13) & numToChar(10).

The CRLF constant is needed because you can't type the characters it represents in a script.

The standard end-of-line delimiter on Unix systems is the line feed character (lf).
The end-of-line delimiter for Mac OS systems is a carriage return (cr).
The end-of-line delimiter for Windows systems is a carriage return followed by a line feed (crlf).
Create

Creates a new object on the current card.

Syntax:

```
create [invisible] type [name] [in group]

```

Synonyms: **new**

Examples:

```
create button "Click Me"

```

```
create invisible field in group 1

```

Use the create command to make a new control or grouped control.

Parameters:

* **type** - A string, one of the following: field, button, image, scrollbar, graphic, player, or EPS.
* **name** - The name to call the newly created object. If you don't specify a name, the object is created with a default name.
* **group** - A reference to a group on the current card or a expression that evaluates to a reference.any group that's on the current card. If you specify a group, the new object is a member of the group, and exists on each card that has the group. If you don't specify a group, the object is created on the current card and appears only on that card.

The new object takes its properties from the corresponding template; for example, newly created buttons match the properties of the templateButton.

If you use the *invisible* form, the object is created with its visible property set to false, so it cannot be seen. Use this form to create a hidden object, change its appearance or position, then make it visible.

The create command places the ID property of the newly created object in the it variable.

When the new control is created, the Pointer tool is automatically chosen. If you use the create command in a handler, you can use the following statement after the create command to resume using the Browse tool:

```
send "choose browse tool" to me in 1 tick

```

In the development environment, after an object is created, LiveCode automatically resets the corresponding template to its default values. This means that if you change an object template and then create several objects of that type, only the first object will reflect your settings. To prevent LiveCode from automatically setting the template back to its defaults, set the lockMessages property to true before creating the objects:

LiveCode resets the template only when in the development environment, not in standalone applications.

```
set the borderWidth of the templateButton to 8
lock messages
repeat for 5 times
 create button
end repeat
unlock messages

```

To create a control in a specific stack, first set the defaultStack to the stack where you want to create the new control:

```
set the defaultStack to "My Stack"
create button "My Button"

```

This command is not limited to controls on a card. It would also create a new stack.

See Also: create stack Command, create card Command
CodepointProperty

Retrieves a Unicode Character Database (UCD )character property of a Unicode codepoint.Syntax:

```
codepointProperty(<unicodeCodepoint>, <propertyName>)

```

Examples:

```
get codepointProperty("A","Script") -- returns "Latin"

```

```
put codePointProperty(codepoint 1 of tString, "Name")

```

Use the **codepointProperty** function to retrieve a UCD property of a
Unicode codepoint.

The Unicode standard and the associated Unicode Character Database (UCD)
define a series of properties for each codepoint in the Unicode
standard. A number of these properties are used internally by the engine
during text processing but it is also possible to query these properties
directly using this function.

There are many properties available; please see the version 6.3.0 of the
Unicode standard, Chapter 4 and Section 5 of Unicode Technical Report
(TR)#44 for details on the names and values of properties. Property
names may be specified with either spaces or underscores and are not
case-sensitive.

```
This function is not intended for general-purpose use; please

```

use functions such as toUpper or the is operators instead.

Parameters:

* unicodeCodepoint: A Unicode codepoint, or an expression which evaulates to a Unicodecodepoint.
* propertyName (enum): The name of a supported UCD codepoint property Examples of supportedproperties, for a full list seehttp://www.unicode.org/versions/Unicode6.2.0/ch04.pdf
* - "Name": Unique name for the codepoint - "Numeric\_Value": Numerical value, e.g. 4 for 4- "Quotation\_Mark": True if the codepoint is a quotation mark- "Uppercase\_Mapping": Uppercase equivalent of the codepoint- "Lowercase": True if the codepoint is lower-case
* Returns:The codepointProperty returns the value of the UCD property for thespecified Unicode codepoint.

See also: toUpper (function),numToCodepoint (function),
CantModify

Specifies whether the user can make changes to a stack.Syntax:

```
set the cantModify of <stack> to { true | false }

```

Examples:

```
set the cantModify of stack "Help" to true

```

Use the **cantModify** property to protect the objects in a
stack from changes.

If a stack's **cantModify** property is set to true, the user cannot
choose any tool except the Browse tool. This prevents the user from
moving, resizing, creating, or deleting objects.

If a stack's **cantModify** is false and its label property is empty,
an asterisk (\*) appears in the stack's title bar, indicating
that the stack can be modified.

The **cantModify** property restricts user actions, but does not affect
actions performed by a handler. To prevent either user action or a
handler from deleting a card, group, or stack, use the
cantDelete property.

```
If a modifiable stack is open in an editable window,

```

the modifiable stack takes precedence over any non-modifiable
stacks, because its modeproperty is lower. This means that menu
items (such as Object → Stack Properties) that act on the current
stack may not be able to operate correctly with a stack whose
cantModify is set to true as long as another, modifiable stack is
open.

See also: stacks (function),stack (object),modeproperty (property),cantDelete (property),userLevel (property),lockText (property),label (property),userModify (property),mode (property),
Ciphernames

The **cipherNames** function returns a list of ciphers and their associated default key lengths in bits.

Syntax:

```
put the cipherNames into tCypherNameList

```

Some ciphers like *blowfish* accept key lengths up to 448 bits where 128 is the default, others have fixed sized key lengths.

The cipherNames function is part of the SSL & Encryption library. To ensure that the function works in a standalone application, you must include this custom library when you create your standalone. In the Inclusions section on the General screen of the Standalone Application Settings window, make sure "SSL & Encryption" is selected in the list of script libraries.

Usually **ciphernames** returns:

* aes-128-cbc,128
* aes-128-cfb,128
* aes-128-cfb1,128
* aes-128-cfb8,128
* aes-128-ctr,128
* aes-128-ecb,128
* aes-128-gcm,128
* aes-128-ofb,128
* aes-128-xts,256
* aes-192-cbc,192
* aes-192-cfb,192
* aes-192-cfb1,192
* aes-192-cfb8,192
* aes-192-ctr,192
* aes-192-ecb,192
* aes-192-gcm,192
* aes-192-ofb,192
* aes-256-cbc,256
* aes-256-cfb,256
* aes-256-cfb1,256
* aes-256-cfb8,256
* aes-256-ctr,256
* aes-256-ecb,256
* aes-256-gcm,256
* aes-256-ofb,256
* aes-256-xts,512
* aes128,128
* aes192,192
* aes256,256
* bf,128
* bf-cbc,128
* bf-cfb,128
* bf-ecb,128
* bf-ofb,128
* blowfish,128
* camellia-128-cbc,128
* camellia-128-cfb,128
* camellia-128-cfb1,128
* camellia-128-cfb8,128
* camellia-128-ecb,128
* camellia-128-ofb,128
* camellia-192-cbc,192
* camellia-192-cfb,192
* camellia-192-cfb1,192
* camellia-192-cfb8,192
* camellia-192-ecb,192
* camellia-192-ofb,192
* camellia-256-cbc,256
* camellia-256-cfb,256
* camellia-256-cfb1,256
* camellia-256-cfb8,256
* camellia-256-ecb,256
* camellia-256-ofb,256
* camellia128,128
* camellia192,192
* camellia256,256
* cast,128
* cast-cbc,128
* cast5-cbc,128
* cast5-cfb,128
* cast5-ecb,128
* cast5-ofb,128
* des,64
* des-cbc,64
* des-cfb,64
* des-cfb1,64
* des-cfb8,64
* des-ecb,64
* des-ede,128
* des-ede-cbc,128
* des-ede-cfb,128
* des-ede-ofb,128
* des-ede3,192
* des-ede3-cbc,192
* des-ede3-cfb,192
* des-ede3-cfb1,192
* des-ede3-cfb8,192
* des-ede3-ofb,192
* des-ofb,64
* des3,192
* desx,192
* desx-cbc,192
* id-aes128-GCM,128
* id-aes192-GCM,192
* id-aes256-GCM,256
* rc2,128
* rc2-40-cbc,40
* rc2-64-cbc,64
* rc2-cbc,128
* rc2-cfb,128
* rc2-ecb,128
* rc2-ofb,128
* rc4,128
* rc4-40,40
* rc4-hmac-md5,128
* seed,128
* seed-cbc,128
* seed-cfb,128
* seed-ecb,128
* seed-ofb,128

See Also: encrypt Command
ClickText

Returns the word or text group the user last clicked.Syntax:

```
clickText()

```

Examples:

```
the clickText

```

```
if the clickText contains "*" then goToFootnote (the clickText)

```

Use the **clickText** function within a mouseDown, mouseUp, or
selectionChanged handler to determine which word or [[grouped
text|text group]] the user clicked, in order to provide hypertext
(clickable text) or take some action based on the click.

The **clickText** function is cleared at the next mouse click, as well
as after some editing actions such as deleting text. If the user has
clicked anywhere since clicking the field, the **clickText** function
returns empty.

The returned value contains the word the user clicked. If the textStyle
of the clicked text is "link", the returned value
contains the entire text group.

```
Words are defined a little differently by the **clickText**

```

function than the way they are used in chunk
expressions. A word, for purposes of the **clickText**, is any text
delimited by spaces, tabs, returns, or punctuation. If you click a
punctuation character, only that character is returned. This means
that, for example, clicking a hyphenated word only returns the part of
the word that was clicked.

The returned value indicates the text that the mouse pointer was over
when the mouse was clicked. Moving the mouse before the mouse button is
released does not affect the value returned by the **clickText**.

If the field is locked, the **clickText** function is most useful within a
handler (such as mouseDown or mouseUp) that is triggered
by the mouse click.

If the field is unlocked, mouseDown and mouseUp messages are
not sent when the user clicks in the field (unless the user
right-clicks or holds down the Control key while clicking). Use the
**clickText** function within a selectionChanged handler to
determine what text the user is editing in an unlocked field.

To get the location of the word or text group clicked, use the
clickChunk function.

See also: clickCharChunk (function),selectedText (function),clickChunk (function),clickChar (function),foundText (function),mouseDown (message),mouseUp (message),selectionChanged (message),
ActivatePalettes

Specifies whether palettes have the same appearance when active and inactive.Syntax:

```
set the activatePalettes to {true | false}

```

Examples:

```
set the activatePalettes to false

```

```
if the activatePalettes then hideAllPalettes

```

By default, the activatePalettes is true if LiveCode is running on a Mac
OS system and false otherwise.

If the **activatePalettes** is true, all palettes look the same. If it is
false, the active palette window looks different from the other palette
windows.

See also: lookAndFeel (property),hidePalettes (property),
CantSelect

Specifies whether a control can be selected with the Pointer tool.Syntax:

```
set the cantSelect of <object> to {true | false}

```

Examples:

```
set the cantSelect of field "Background" to true

```

Use the **cantSelect** property to protect a control from being
changed by the user.

If the **cantSelect** of a control is set to true, the user cannot
select it (and so cannot resize it or move it). If a group or card has
**cantSelect** set to true, all of its children will also act as if they
have **cantSelect** set to true (i.e. They will also not be selectable.)
You can use 'the effective **cantSelect** ' to determine if the object,
or any of its ancestors have **cantSelect** set.

When the user clicks the control with the Pointer tool, LiveCode acts
as though it has been clicked with the Browse tool. If the
**cantSelect** is false, the user can click the control with the
Pointer tool to select it.

A handler can still select the object, regardless of the setting of the
**cantSelect** property.

See also: tool (function),selected (property),
Answer record

Displays the QuickTime sound-recording settings dialog box.

Examples:

```
answer record

```

```
if the alreadyHaveSettings of this card is false then answer record

```

 Datei:LCanswerRec.png
Use the answer record command to specify settings for use with the record sound command.

The answer record command displays a dialog box where the user can select a sound compression format, rate, sampling rate, and whether to record in mono or stereo. Depending on the compression format, other options may also be offered. (This dialog box is displayed by QuickTime, not by LiveCode.) The settings the user chooses will be used the next time the record sound command is used.

The answer record command sets the recordCompression, recordRate, recordSampleSize, and recordChannels properties in accordance with the settings chosen in the dialog box. To save the settings you choose in the dialog box and use them later without re-displaying the dialog, save the values of these properties, then restore them when you want to record sound.

If the user cancels the dialog, the result function returns "Cancel", and the recording-related properties are unchanged.

If the dontUseQT property is set to true, the answer record command cannot be used, and the result returns "could not initialize quicktime".
ClickLoc

Returns the position of the most recent mouse click.Syntax:

```
clickLoc()

```

Examples:

```
the clickLoc

```

```
if the clickLoc is the mouseLoc then send mouseUp to me

```

Use the **clickLoc** function to determine where a user clicked, or to
determine whether the mouse pointer has moved since the last click.

The first item of the returned value is the horizontal distance in
pixels from the left edge of the clicked stack to the location of the
click. (Use the clickStack function to identify which stack was
clicked.) The second item of the returned value is the
vertical distance from the top edge of the clicked stack to the
location of the click.

The click location is the position of the mouse pointer when the user
pressed the mouse button, not when the user released the button. In
particular, inside a mouseDown handler, the clickLoc returns the
position of the mouse as it was when the mouse down action occurred.

The first item of the **clickLoc** is equal to the clickH. The second
item is equal to the clickV.

See also: function (control structure),mouseClick (function),selectedLoc (function),clickH (function),clickV (function),clickStack (function),linkClicked (message),mouseDoubleUp (message),mouseStillDown (message),stack (object),
As

It's a reserved word typically used with the do command to specify a scripting language.

```
do field 1 as "Javascript"

```

Used also with the export command to specify the file format to export to, used with the go command to specify the mode of a stack; used with the save command to specify the file name and location.

```
export image "image" to file myFile as PNG

```

```
go stack "Controls" as palette

```

```
save this stack as "../Backups/Current.rev"

```
ArrayEncode

Serializes a LiveCode array.Syntax:

```
arrayEncode(<array>,[<version>])

```

Examples:

```
savePreferencesData "displayOptions", arrayEncode(sDisplayOptionsArray)

```

```
write urlEncode(arrayEncode(tArray)) to socket tSocket

```

Use the **arrayEncode** function to convert an array into a string so that
it can be saved to a file or sent across a network.

The string returned by the arrayEncode function is designed to be used
to transfer arrays to remote machines or to save them to a file on disk.
It is an opaque, binary encoding of the data contained in the array. The
original array can be rebuilt by using the arrayDecode function. Encoded
arrays cannot easily be modified, and should always be converted back
into real arrays before attemping to access or modify them.

To send an encoded array to a remote process over TCP/IP, it should be
encoded using the URLEncode function, as it may contain characters not
suitable for use in URLs.

Arrays in LiveCode are un-ordered. This means in particular
that encoding two arrays will not necessarily produce the same result,
even if the arrays had the same elements. To compare two arrays,
simply use the = operator directly on them rather than encoding them
first.

Parameters:

* array (array): The array is a LiveCode array.
* version:If present, and ]]= "7.0" then the array is encoded in such a way as topreserve unicode in keys and values, as well as NUL chars in keys andvalues
* Returns (string): The **arrayEncode** function returns a string of binary data thatrepresents the data and structure of the specified array.

See also: arrayDecode (function),
ClickChunk

Returns the position of the word or grouped text that the user last clicked.Syntax:

```
clickChunk()

```

Examples:

```
the clickChunk

```

```
select the clickChunk

```

Use the **clickChunk** function within a mouseDown, mouseUp, or
selectionChanged handler to determine which word or [[grouped
text|text group]] the user clicked, in order to provide hypertext
(clickable text) or take some action based on the click.

The **clickChunk** function is cleared at the next mouse click, as well
as after some editing actions such as deleting text. If the last click
was not in a field, the **clickChunk** function returns
empty.

The returned value reports the word the user clicked: the startChar is
the first character of the word, and the endChar is the last
character. If the textStyle of the clicked text is "link", the
returned value specifies the entire text
group.

```
Words are defined a little differently by the

```

**clickChunk** function than the way they are used in [[chunk
expression|chunk expressions]]. A word, for purposes of the
**clickChunk**, is any text delimited by spaces, tabs, returns, or
punctuation. If you click a punctuation character, only that
character is returned. This means that, for example, clicking a
hyphenated word only returns the part of the word that was clicked.

The returned value indicates the text that the mouse pointer was over
when the mouse was clicked. Moving the mouse before the mouse button is
released does not affect the value returned by the **clickChunk**.

If the field is locked, the **clickChunk** function is most useful within
a handler (such as mouseDown or mouseUp) that is
triggered by the mouse click.

If the field is unlocked, mouseDown and mouseUp messages are
not sent when the user clicks in the field (unless the user
right-clicks or holds down the Control key while clicking). Use the
**clickChunk** function within a selectionChanged handler to
determine what characters the user is editing in an unlocked
field.

To get the text of the word or text group clicked, use the clickText
function.

See also: selectedChunk (function),dropChunk (function),clickStack (function),clickChar (function),mouseDown (message),mouseUp (message),selectionChanged (message),textStyle (property),
Copy

Copies selected text or an object to the clipboard or to a card, group, or stack.

Syntax:

```
copy [object [to {card | group | stack} ]] | [chunk of field]

```

Examples:

```
copy

```

```
copy button "next" to group "container"

```

```
copy this card to stack "Project 1"

```

```
copy word -3 to -1 of field "output"

```

```
copy line 1 to -2 of field "MyText" of me

```

```
copy word 5 of field "MyText" of me

```

```
copy item 1 to 10 of field "MyText" of me

```

```
copy char 1 to -1 of field "MyText" of me #this copy all text

```

Use the copy command to place objects or text on the clipboard, or to make a copy of an object without changing the contents of the clipboard.

The *object* is any available object. If no object or chunk is specified, the copy command copies whatever is currently selected.

If a card, group, or stack is specified, the object is placed there instead of being placed in the clipboard, and the clipboard is left unchanged.

If a card is specified, the copied object must be a control or group.

If a group is specified, the copied object must be a control.

If a stack is specified, the copied object must be a card.

If a chunk of a field is specified, the specified text is copied to the clipboard (including text styles).

If a destination card, group, or stack is specified, the copy command places the ID property of the newly created object in the it variable, and the appropriate message is sent.

When copying from a list field, only entire lines can be copied. If you specify a chunk that's smaller than a line or that crosses line boundaries, the copy command copies the entire line or lines containing the chunk.

See Also: clipboard Function, copyResource Function, place Command, clone Command, cut Command, doMenu Command, undo Command, paste Command, select Command, clipboardData Property, newButton Message, newEPS Message, copyKey Message, newPlayer Message, newField Message, newScrollbar Message, newGraphic Message, newImage Message, newBackground Message, newCard Message, newGroup Message
Ceil

Returns the smallest integer greater than or equal to number.Syntax:

```
ceil(<number>)

```

Synonyms: ceiling

Examples:

```
put ceil(33.567) -- result is 34

```

```
put ceil(-6.3) -- result is -6

```

Use the **ceil** function to return the greatest integer less than or
equal to a number.

The **ceil** function does not always return the integer
closest to the number.. For example, ceil(5.1)
returns 6, but ceil(4.99) returns 5.

Parameters:

* number: Any number, or expression that evaluates to a number.

See also: trunc (function),abs (function),floor (function),
CloseStack

Sent to the current card when the stack closes.Syntax:

```
closeStack

```

Examples:

```
on closeStack -- automatically save changes
  save this stack
  pass closeStack
end closeStack

```

Handle the **closeStack** message if you want to perform cleanup or do
other tasks when the user closes a window.

A stack is closed when the user or a handler closes the stack window.

The actual closing is not triggered by the **closeStack** message, so
trapping the message and not allowing it to pass does not
prevent the stack from closing. To prevent a stack from closing,
trap the closeStackRequest message.

See also: closeStackRequest (message),unIconifyStack (message),closeBackground (message),preOpenStack (message),shutdown (message),suspendStack (message),saveStackRequest (message),closeCard (message),stack (object),closeBox (property),
CommandArguments

If no index is given, returns a 1-based, numeric array containing all the arguments given to the command. If an index is given, returns the argument corresponding to the index (1 being the first argument).Syntax:

```
the commandArguments of <index>

```

Examples:

```
local tArgs
put the commandArguments into tArgs
put the keys of tArgs

```

```
repeat for each element tArgument in the commandArguments
    if tArgument is "-v" then
       put true into tVerbose
    end if
end repeat

```

```
put commandArguments(1)

```

Returns a 1-based numeric array containing the commandline arguments

With no index given, the **commandArguments** function returns an 1-based,
numeric array containing the arguments given at the launch of the
application. With an index given, it returns the commandline argument at
this index The list only exists on desktop standalones applications and
server scripts. On mobile platform or in the IDE, the **commandArguments**
returns empty.

Parameters:

* index (integer): An integer greater than 0.If the index is greater than the number of arguments, thencommandArguments returns empty. .
* Returns: Returns either a numeric array with all the commandline arguments if noindex is given, or the argument at the index specified.