Checkbox

A checkbox field can be configured to be checked by default when a new object is created. This can be achieved by checking "Default value" in the object field settings. In the UI a checkbox is displayed as a simple checkbox. It is stored in a TINYINT column in the database with the value 0 or 1. In order to set a checkbox value, a bool value needs to be passed to the according setter of the object:
$object->setCheckbox(true);
Image

An image field is stored in an INT column in the the database. It holds the id of the referenced Asset_Image. Unlike other object relation types, an image relation is not stored in the relations table (this has historic reasons), but it creates a dependency in the dependencies table.
To set an object's image field programmatically, an Asset_Image must be passed to the according setter.
$image = Asset_Image::getByPath("/examples/example1.jpg");
$object->setImage($image);
$object->save();
The image field is represented in the UI by an image drop area. The image drop area's width and height can be configured in the class settings as follows:

In the frontend
The get a thumbnail of an image field, just call getThumbnail() on the returned asset object.
<?php if ($object->getMyImage() instanceof Asset_Image) {?> <img src="<?php echo $object->getMyImage()->getThumbnail("myThumbnailName") ?>" /> <?php } ?>
Since $object->getImage() just returns an asset object, you can of course use all other thumbnail features of Asset_Image. See here.
Image with Hotspots (since 1.4.2)
This data type is an extension to the image data type which allows defining hotspots on the assigned image.

The hotspots are defined by a name and are stored as an array with the attributes name, top, left, width and height whereas the values top, left, width, height are stored as percentages of the image dimensions.
To access the hotspots programmatically, following code snipped can be used.
$hotspotImage = $object->getHotspot1(); //get the assigned Asset_Image $image = $hotspotImage->getImage(); //get an array of all defined hotspots $hotspots = $hotspotImage->getHotspots();
The content of $hotspots could look like:
Array
(
[0] => stdClass Object
(
[name] => hotspot1
[top] => 3.8922155688623
[left] => 48.076923076923
[width] => 8.3333333333333
[height] => 48.802395209581
)
[1] => stdClass Object
(
[name] => hotspot2
[top] => 8.9820359281437
[left] => 70.897435897436
[width] => 14.230769230769
[height] => 44.011976047904
)
)
This information can be used in the frontend to visualize the hotspots.
Link

In the UI a link is displayed as text. It's details can be edited by clicking on the button next to the link text. In the object class definition there are no special configurations available for a object field link.
The link object field has it's own data class which is Object_Data_Link. In order to set a link programmatically an Object_Data_Link object needs to be instantiated and passed to the setter:
$l = new Object_Data_Link(); $l->setPath("http://www.pimcore.org"); $l->setTitle("pimcore.org"); $object->setLink($l);
In the database the link is stored in a TEXT column which holds the serialized data of an Object_Data_Link.