dj int x;
dj int y;
dj int width;
dj int height;
These four attributes specify the layout area for the components in the class. The x and y are the xy-coordinate of the left-upper corner, and width and height are the width and height of the area, respectively. No component can be laid outside this area.
Recall our HelloWorld example:
class HelloWorld {
dj Button bt{text=="Hello World!"};
}
If we write the default attributes and constraints explicitly, then the class would look like:
class HelloWorld {
dj int x;
dj int y;
dj int width;
dj int height;
dj Button bt{text=="Hello World!"};
bt.x >= x; bt.y >= y;
bt.x+bt.width <= x+width;
bt.y+bt.height <= y+height;
}
In DJ, the four default attributes cannot be overridden. Also, a global coordinate system is used and all x and y attributes refer to some xy-coordinates int the global coordinate system.