Here only a small subset of cooridnate settings is described. To see all the features of LVGL (padding, cooridnates in styles, layouts, etc) visit the [Coordinates](overview/coord) page.
The object size can be modified on individual axes with `lv_obj_set_width(obj, new_width)` and `lv_obj_set_height(obj, new_height)`, or both axes can be modified at the same time with `lv_obj_set_size(obj, new_width, new_height)`.
#### Position
You can set the x and y coordinates relative to the parent with `lv_obj_set_x(obj, new_x)` and `lv_obj_set_y(obj, new_y)`, or both at the same time with `lv_obj_set_pos(obj, new_x, new_y)`.
You can align the object on it's parent with `lv_obj_set_align(obj, LV_ALIGN_...)`. After this every x and y settings will be ralitiev to the set alignment mode.
For example a this will shift the object by 10;20 px fro mthe center of its parent.
When you have created a screen like `lv_obj_t * screen = lv_obj_create(NULL)`, you can load it with `lv_scr_load(screen)`. The `lv_scr_act()` function gives you a pointer to the current screen.
If you have more display then it's important to know that these functions operate on the lastly created or the explicitly selected (with `lv_disp_set_default`) display.
To get an object's screen use the `lv_obj_get_screen(obj)` function.
A new style can be added to an object with `lv_obj_add_style(obj, part, &new_style)` function. The Base object use all the rectangle-like style properties.
If you modify a style, which is already used by objects, in order to refresh the affected objects you can use either `lv_obj_refresh_style(obj)` on each object using it or
notify all objects with a given style use `lv_obj_report_style_change(&style)`. If the parameter of `lv_obj_report_style_change` is `NULL`, all objects will be notified.
### Flags
There are some attributes which can be enabled/disabled by `lv_obj_add/clear_flag(obj, LV_OBJ_FLAG_...)`:
-`LV_OBJ_FLAG_HIDDEN` Make the object hidden. (Like it wasn't there at all)
-`LV_OBJ_FLAG_CLICKABLE` Make the object clickable by the input devices
-`LV_OBJ_FLAG_CLICK_FOCUSABLE` Add focused state to the object when clicked
-`LV_OBJ_FLAG_CHECKABLE` Toggle checked state when the object is clicked
-`LV_OBJ_FLAG_SCROLLABLE` Make the object scrollable
-`LV_OBJ_FLAG_SCROLL_ELASTIC` Allow scrolling inside but with slower speed
-`LV_OBJ_FLAG_SCROLL_MOMENTUM` Make the object scroll further when "thrown"
-`LV_OBJ_FLAG_SCROLL_ONE`Allow scrolling only one snapable children
-`LV_OBJ_FLAG_SCROLL_CHAIN` Allow propagating the scroll to a parent
-`LV_OBJ_FLAG_SCROLL_ON_FOCUS` Automatically scroll object to make it visible when focused
-`LV_OBJ_FLAG_SNAPABLE` If scroll snap is enabled on the parent it can snap to this object
-`LV_OBJ_FLAG_PRESS_LOCK` Keep the object pressed even if the press slid from the object
-`LV_OBJ_FLAG_EVENT_BUBBLE` Propagate the events to the parent too
-`LV_OBJ_FLAG_GESTURE_BUBBLE` Propagate the gestures to the parent
-`LV_OBJ_FLAG_ADV_HITTEST` Allow performing more accurate hit (click) test. E.g. consider rounded corners.
-`LV_OBJ_FLAG_IGNORE_LAYOUT` Make the object position-able by the layouts
-`LV_OBJ_FLAG_FLOATING` Do not scroll the object when the parent scrolls and ignore layout
-`LV_OBJ_FLAG_LAYOUT_1` Custom flag, free to use by layouts
-`LV_OBJ_FLAG_LAYOUT_2` Custom flag, free to use by layouts
-`LV_OBJ_FLAG_WIDGET_1` Custom flag, free to use by widget
-`LV_OBJ_FLAG_WIDGET_2` Custom flag, free to use by widget
-`LV_OBJ_FLAG_USER_1` Custom flag, free to use by user
-`LV_OBJ_FLAG_USER_2` Custom flag, free to use by user
-`LV_OBJ_FLAG_USER_3` Custom flag, free to use by user
-`LV_OBJ_FLAG_USER_4` Custom flag, free to use by usersection.
Once, an object is added to *group* with `lv_group_add_obj(group, obj)` the object's current group can be get with `lv_obj_get_group(obj)`.
`lv_obj_is_focused(obj)` tells if the object is currently focused on its group or not. If the object is not added to a group, `false` will be returned.