blob: 9b8ac1f10c12e895cfc8eba5075607a17dc20010 (plain
~~Title: Developer Guides~~
# Programming Guides #
This section of the Enlightenment Wiki offers reference guides for the most commonly-used features of the Enlightenment Foundation Libraries (EFL) and associated infrastructure. These guides are designed to supplement and support the step-by-step tutorials, which are written as a starting point for beginners who have not previously programmed using EFL.
The documentation in this section is split by language. At present, only C documentation is included; this will be expanded in the future to provide guides for other languages.
## Current Guides ##
The documentation of EFL and its infrastructure is an ongoing effort, taking place alongside the roll-out of a new version of the application programming interface (API). The documentation in this section is verified as applicable to the new API, currently in beta; for guidance on the current API release consult the [Legacy Programming Guide](https://www.enlightenment.org/develop/legacy/program_guide/start).
## Eina Programming Guide ##
[The Eina Programming Guide](https://www.enlightenment.org/develop/guides/c/eina/start.md) provides a quick reference and code examples for the ``Eina`` library, which is designed to implement an API for data types in an efficient manner and which comes with tools for common tasks.
## Main Loop Programming Guide ##
[The Main Loop Programming Guide](https://www.enlightenment.org/develop/guides/c/core/main-loop.md) provides a reference to the internal EFL Main Loop, in which execution takes place, and the timers, monitors, idlers, and polling capabilities it offers.
## IO Programming Guide ##
[The IO Programming Guide](https://www.enlightenment.org/develop/guides/c/core/io.md) details the use of EFL's input-output handling facilities for reading and writing files, Unix file descriptors and networks sockets.
## Events Programming Guide ##
[The Events Programming Guide](https://www.enlightenment.org/develop/guides/c/core/events.md) provides a reference for EFL's event-driven nature, detailing methods for handling events.
## User Interface Sizing Programming Guide ##
[The User Interface Sizing Programming Guide](https://www.enlightenment.org/develop/guides/c/ui/sizing.md) provides a reference to the controls offered by EFL for controlling the minimum and maximum size of a widget when default values are inappropriate.
## User Interface Focus Programming Guide ##
[The User Interface Focus Programming Guide](https://www.enlightenment.org/develop/guides/c/ui/focus.md) details how to handle focus, the graphical indicator of the widget currently selected, in EFL.
## EFL C Porting Guide ##
[The EFL C Porting Guide](https://www.enlightenment.org/develop/guides/c/porting-guide.md) is designed for developers looking to transition from the current EFL API to the beta release, known as the Unified API. This document is a work in progress.