
Setting it will translate to a set_focus_item call in the constructor. This implements parts of #55
6.1 KiB
Builtin Elements
Common properties
These properties are valid on all visible items
x
andy
(length): the position of the element relative to its parentwidth
andheight
(length): The size of the element. When sets, this override the default size.maximum_width
andmaximum_height
(length): The maximum size of an element when used in a layout.minimum_width
andminimum_height
(length): The minimum size of an element when used in a layout.col
,row
,colspan
,rowspan
(int): SeeGridLayout
.
Window
Window is the root of what is on the screen
Rectangle
By default, the rectangle is just an empty item that shows nothing. By setting a color or a border it is then possible to draw a simple rectangle on the screen
Properties
color
(color): The background color of the Rectangle. (default value: transparent)border_width
(length): The width of the border. (default value: 0)border_color
(color): The color of the border. (default value: transparent)border_radius
(length): The size of the radius. (default value: 0)
Example
Example := Window {
width: 270lx;
height: 100lx;
Rectangle {
x: 10lx;
y: 10lx;
width: 50lx;
height: 50lx;
color: blue;
}
// Rectangle with a border
Rectangle {
x: 70lx;
y: 10lx;
width: 50lx;
height: 50lx;
color: green;
border_width: 2lx;
border_color: red;
}
// Transparent Rectangle with a border and a radius
Rectangle {
x: 140lx;
y: 10lx;
width: 50lx;
height: 50lx;
border_width: 4lx;
border_color: black;
border_radius: 10lx;
}
// A radius of width/2 makes it a circle
Rectangle {
x: 210lx;
y: 10lx;
width: 50lx;
height: 50lx;
color: yellow;
border_width: 2lx;
border_color: blue;
border_radius: width/2;
}
}
Image
An Image can be used to represent an image loaded from an image file
Properties
source
(image): The image to load. In order to reference image, one uses theimg!"..."
macro which loads the file relative to the directory containing the .60 file.
Example
Example := Image {
source: img!"foo.png";
}
Text
A text simply show the text on the screen
Properties
text
(string): The actual text.font_family
(string): The font namefont_size
(length): The font size of the textcolor
(color): The color of the text (default: transparent)horizontal_alignment
,vertical_alignment
(FIXME: enum): How is the text aligned within the item
Example
Example := Window {
width: 270lx;
height: 100lx;
Text {
text: "Hello World";
color: red;
}
}
Path
FIXME: write docs
TouchArea
The TouchArea control what happens when the zone covered by it is touched or interacted with the mouse.
Properties
pressed
(bool): Set to true by the TouchArea when the mouse is pressed over it.mouse_x
,mouse_y
(length): Set by the TouchArea to the position of the mouse within it.pressed_x
,mouse_y
(length): Set to true by the TouchArea to the position of the mouse at the moment it was last pressed.
Signals
clicked
: Emited when the mouse is released
Example
Example := Window {
width: 200lx;
height: 100lx;
area := TouchArea {
width: parent.width;
height: parent.height;
clicked => {
rect2.color = #ff0;
}
}
Rectangle {
width: parent.width / 2;
height: parent.height;
color: area.pressed ? blue: red;
}
rect2 := Rectangle {
x: parent.width / 2;
width: parent.width / 2;
height: parent.height;
}
}
GridLayout
GridLayout
places the elements in a grid. GridLayout
adds properties to each item: col
, row
, colspan
, rowspan
.
You can control the position of elements with col
and row
.
If col
or row
is not specified, they are automatically computed such that the item is next to the previous item, in the same row.
Alternatively, the item can be put in a Row
element.
Properties
spacing
(length): The distance between the elements in the layout.padding
(length): the padding within the layout.padding_left
,padding_right
,padding_top
andpadding_bottom
(length): override the padding in specific sides.
Examples
This example use the Row
element
Foo := Window {
width: 200lx;
height: 200lx;
GridLayout {
spacing: 5lx;
Row {
Rectangle { color: red; }
Rectangle { color: blue; }
}
Row {
Rectangle { color: yellow; }
Rectangle { color: green; }
}
}
}
This example use the col
and row
property
Foo := Window {
width: 200lx;
height: 150lx;
GridLayout {
Rectangle { color: red; }
Rectangle { color: blue; }
Rectangle { color: yellow; row: 1; }
Rectangle { color: green; }
Rectangle { color: black; col: 2; row: 0; }
}
}
PathLayout
FIXME: write docs
Flickable
FIXME: write docs
TextInput
The TextInput
is a lower-level item that shows text and allows entering text.
Properties
text
(string): The actual text.font_family
(string): The font namefont_size
(length): The font size of the textcolor
(color): The color of the text (default: transparent)horizontal_alignment
,vertical_alignment
(FIXME: enum): How is the text aligned within the itemhas_focus
(bool): Set to true when item is focused and receives keyboard events.
Example
Example := Window {
width: 270lx;
height: 100lx;
TextInput {
text: "Replace me with a name";
}
}