| Ecore.h | | Ecore.h | |
|
| | | /** | |
| | | @brief Ecore Library Public API Calls | |
| | | | |
| | | These routines are used for Ecore Library interaction | |
| | | */ | |
| | | | |
| | | /** | |
| | | | |
| | | @mainpage Ecore | |
| | | | |
| | | @version 1.1 | |
| | | @date 2000-2011 | |
| | | | |
| | | Please see the @ref authors page for contact details. | |
| | | | |
| | | @section intro Introduction | |
| | | | |
| | | Ecore is a library of convenience functions. A brief explanation of how | |
| | | to use | |
| | | it can be found in @ref Ecore_Main_Loop_Page. | |
| | | | |
| | | The Ecore library provides the following modules: | |
| | | @li @ref Ecore_Main_Loop_Group | |
| | | @li @ref Ecore_File_Group | |
| | | @li @ref Ecore_Con_Group | |
| | | @li @link Ecore_Evas.h Ecore_Evas - Evas convenience functions. @endli | |
| | | nk | |
| | | @li @ref Ecore_FB_Group | |
| | | @li @link Ecore_Ipc.h Ecore_IPC - Inter Process Communication functio | |
| | | ns. @endlink | |
| | | @li @link Ecore_X.h Ecore_X - X Windows System wrapper. @endlink | |
| | | @li @ref Ecore_Win32_Group | |
| | | @li @ref Ecore_WinCE_Group | |
| | | | |
| | | For more info on Ecore usage, there are these @ref Examples. | |
| | | | |
| | | @section compiling How to compile using Ecore? | |
| | | pkgconfig (.pc) files are installed for every ecore module. | |
| | | Thus, to compile using any of them, you can use something like the follo | |
| | | wing: | |
| | | | |
| | | @verbatim | |
| | | gcc *.c $(pkg-config ecore ecore-$x ecore-$y [...] --cflags --libs) | |
| | | @endverbatim | |
| | | | |
| | | @section install How is it installed? | |
| | | | |
| | | Suggested configure options for evas for a Linux desktop X display: | |
| | | | |
| | | @verbatim | |
| | | ./configure \ | |
| | | make | |
| | | su - | |
| | | ... | |
| | | make install | |
| | | @endverbatim | |
| | | | |
| | | */ | |
| | | | |
| | | /** | |
| | | @page authors Authors | |
| | | @author Carsten Haitzler <raster@rasterman.com> | |
| | | @author Tom Gilbert <tom@linuxbrit.co.uk> | |
| | | @author Burra <burra@colorado.edu> | |
| | | @author Chris Ross <chris@darkrock.co.uk> | |
| | | @author Term <term@twistedpath.org> | |
| | | @author Tilman Sauerbeck <tilman@code-monkey.de> | |
| | | @author Ibukun Olumuyiwa <ibukun@computer.org> | |
| | | @author Yuri <da2001@hotmail.ru> | |
| | | @author Nicholas Curran <quasar@bigblue.net.au> | |
| | | @author Howell Tam <pigeon@pigeond.net> | |
| | | @author Nathan Ingersoll <rbdpngn@users.sourceforge.net> | |
| | | @author Andrew Elcock <andy@elcock.org> | |
| | | @author Kim Woelders <kim@woelders.dk> | |
| | | @author Sebastian Dransfeld <sebastid@tango.flipp.net> | |
| | | @author Simon Poole <simon.armlinux@themalago.net> | |
| | | @author Jorge Luis Zapata Muga <jorgeluis.zapata@gmail.com> | |
| | | @author dan sinclair <zero@everburning.com> | |
| | | @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> | |
| | | @author David 'onefang' Seikel <onefang@gmail.com> | |
| | | @author Hisham 'CodeWarrior' Mardam Bey <hisham@hisham.cc> | |
| | | @author Brian 'rephorm' Mattern <rephorm@rephorm.com> | |
| | | @author Tim Horton <hortont424@gmail.com> | |
| | | @author Arnaud de Turckheim 'quarium' <quarium@gmail.com> | |
| | | @author Matt Barclay <mbarclay@gmail.com> | |
| | | @author Peter Wehrfritz <peter.wehrfritz@web.de> | |
| | | @author Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com> | |
| | | @author Vincent Torri <vincent.torri@gmail.com> | |
| | | @author Lars Munch <lars@segv.dk> | |
| | | @author Andre Dieb <andre.dieb@gmail.com> | |
| | | @author Mathieu Taillefumier <mathieu.taillefumier@free.fr> | |
| | | @author Rui Miguel Silva Seabra <rms@1407.org> | |
| | | @author Samsung Electronics | |
| | | @author Samsung SAIT | |
| | | @author Nicolas Aguirre <aguirre.nicolas@gmail.com> | |
| | | @author Brett Nash <nash@nash.id.au> | |
| | | @author Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | |
| | | @author Leif Middelschulte <leif.middelschulte@gmail.com> | |
| | | @author Mike McCormack <mj.mccormack@samsung.com> | |
| | | @author Sangho Park <gouache95@gmail.com> | |
| | | @author Jihoon Kim <jihoon48.kim@samsung.com> <imfine98@gmail.com> | |
| | | @author Daniel Juyung Seo <seojuyung2@gmail.com> <juyung.seo@samsung.com | |
| | | > | |
| | | | |
| | | Please contact <enlightenment-devel@lists.sourceforge.net> to get in | |
| | | contact with the developers and maintainers. | |
| | | */ | |
| | | | |
| | | /* | |
| | | @page Ecore_Main_Loop_Page The Ecore Main Loop | |
| | | | |
| | | @section intro What is Ecore? | |
| | | | |
| | | Ecore is a clean and tiny event loop library with many modules to do lot | |
| | | s of | |
| | | convenient things for a programmer, to save time and effort. | |
| | | | |
| | | It's small and lean, designed to work on embedded systems all the way to | |
| | | large and powerful multi-cpu workstations. It serialises all system sign | |
| | | als, | |
| | | events etc. into a single event queue, that is easily processed without | |
| | | needing to worry about concurrency. A properly written, event-driven pro | |
| | | gram | |
| | | using this kind of programming doesn't need threads, nor has to worry ab | |
| | | out | |
| | | concurrency. It turns a program into a state machine, and makes it very | |
| | | robust and easy to follow. | |
| | | | |
| | | Ecore gives you other handy primitives, such as timers to tick over for | |
| | | you | |
| | | and call specified functions at particular times so the programmer can u | |
| | | se | |
| | | this to do things, like animate, or time out on connections or tasks tha | |
| | | t take | |
| | | too long etc. | |
| | | | |
| | | Idle handlers are provided too, as well as calls on entering an idle sta | |
| | | te | |
| | | (often a very good time to update the state of the program). All events | |
| | | that | |
| | | enter the system are passed to specific callback functions that the prog | |
| | | ram | |
| | | sets up to handle those events. Handling them is simple and other Ecore | |
| | | modules produce more events on the queue, coming from other sources such | |
| | | as | |
| | | file descriptors etc. | |
| | | | |
| | | Ecore also lets you have functions called when file descriptors become a | |
| | | ctive | |
| | | for reading or writing, allowing for streamlined, non-blocking IO. | |
| | | | |
| | | Here is an example of a simple program and its basic event loop flow: | |
| | | | |
| | | @image html prog_flow.png | |
| | | @image latex prog_flow.eps width=\textwidth | |
| | | | |
| | | @section work How does Ecore work? | |
| | | | |
| | | Ecore is very easy to learn and use. All the function calls are designed | |
| | | to | |
| | | be easy to remember, explicit in describing what they do, and heavily | |
| | | name-spaced. Ecore programs can start and be very simple. | |
| | | | |
| | | For example: | |
| | | | |
| | | @code | |
| | | #include <Ecore.h> | |
| | | | |
| | | int | |
| | | main(int argc, const char **argv) | |
| | | { | |
| | | ecore_init(); | |
| | | ecore_app_args_set(argc, argv); | |
| | | ecore_main_loop_begin(); | |
| | | ecore_shutdown(); | |
| | | return 0; | |
| | | } | |
| | | @endcode | |
| | | | |
| | | This program is very simple and doesn't check for errors, but it does st | |
| | | art up | |
| | | and begin a main loop waiting for events or timers to tick off. This pro | |
| | | gram | |
| | | doesn't set up any, but now we can expand on this simple program a littl | |
| | | e | |
| | | more by adding some event handlers and timers. | |
| | | | |
| | | @code | |
| | | #include <Ecore.h> | |
| | | | |
| | | Ecore_Timer *timer1 = NULL; | |
| | | Ecore_Event_Handler *handler1 = NULL; | |
| | | double start_time = 0.0; | |
| | | | |
| | | int | |
| | | timer_func(void *data) | |
| | | { | |
| | | printf("Tick timer. Sec: %3.2f\n", ecore_time_get() - start_time); | |
| | | return 1; | |
| | | } | |
| | | | |
| | | int | |
| | | exit_func(void *data, int ev_type, void *ev) | |
| | | { | |
| | | Ecore_Event_Signal_Exit *e; | |
| | | | |
| | | e = (Ecore_Event_Signal_Exit *)ev; | |
| | | if (e->interrupt) printf("Exit: interrupt\n"); | |
| | | else if (e->quit) printf("Exit: quit\n"); | |
| | | else if (e->terminate) printf("Exit: terminate\n"); | |
| | | ecore_main_loop_quit(); | |
| | | return 1; | |
| | | } | |
| | | | |
| | | int | |
| | | main(int argc, const char **argv) | |
| | | { | |
| | | ecore_init(); | |
| | | ecore_app_args_set(argc, argv); | |
| | | start_time = ecore_time_get(); | |
| | | handler1 = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, exit_func, N | |
| | | ULL); | |
| | | timer1 = ecore_timer_add(0.5, timer_func, NULL); | |
| | | ecore_main_loop_begin(); | |
| | | ecore_shutdown(); | |
| | | return 0; | |
| | | } | |
| | | @endcode | |
| | | | |
| | | In the previous example, we initialize our application and get the time | |
| | | at | |
| | | which our program has started so we can calculate an offset. We set | |
| | | up a timer to tick off in 0.5 seconds, and since it returns 1, will | |
| | | keep ticking off every 0.5 seconds until it returns 0, or is deleted | |
| | | by hand. An event handler is set up to call a function - | |
| | | exit_func(), | |
| | | whenever an event of type ECORE_EVENT_SIGNAL_EXIT is received (CTRL-C | |
| | | on the command line will cause such an event to happen). If this event | |
| | | occurs it tells you what kind of exit signal was received, and asks | |
| | | the main loop to quit when it is finished by calling | |
| | | ecore_main_loop_quit(). | |
| | | | |
| | | The handles returned by ecore_timer_add() and | |
| | | ecore_event_handler_add() are | |
| | | only stored here as an example. If you don't need to address the timer o | |
| | | r | |
| | | event handler again you don't need to store the result, so just call the | |
| | | function, and don't assign the result to any variable. | |
| | | | |
| | | This program looks slightly more complex than needed to do these simple | |
| | | things, but in principle, programs don't get any more complex. You add m | |
| | | ore | |
| | | event handlers, for more events, will have more timers and such, BUT it | |
| | | all | |
| | | follows the same principles as shown in this example. | |
| | | | |
| | | */ | |
| | | | |
| | | /* | |
| | | @page Ecore_Config_Page The Enlightened Property Library | |
| | | | |
| | | The Enlightened Property Library (Ecore_Config) is an adbstraction | |
| | | from the complexities of writing your own configuration. It provides | |
| | | many features using the Enlightenment 17 development libraries. | |
| | | | |
| | | To use the library, you: | |
| | | @li Set the default values of your properties. | |
| | | @li Load the configuration from a file. You must set the default values | |
| | | first, so that the library knows the correct type of each argument. | |
| | | | |
| | | The following examples show how to use the Enlightened Property Library: | |
| | | @li @link config_basic_example.c config_basic_example.c @endlink | |
| | | @li @link config_listener_example.c config_listener_example.c @endlink | |
| | | | |
| | | */ | |
| | | | |
| | | /** | |
| | | @page X_Window_System_Page X Window System | |
| | | | |
| | | The Ecore library includes a wrapper for handling the X window system. | |
| | | This page briefly explains what the X window system is and various terms | |
| | | that are used. | |
| | | */ | |
| | | | |
| #ifndef _ECORE_H | | #ifndef _ECORE_H | |
| #define _ECORE_H | | #define _ECORE_H | |
| | | | |
| #ifdef _MSC_VER | | #ifdef _MSC_VER | |
| # include <Evil.h> | | # include <Evil.h> | |
| #endif | | #endif | |
| | | | |
| #include <Eina.h> | | #include <Eina.h> | |
| | | | |
| #ifdef EAPI | | #ifdef EAPI | |
| | | | |
| skipping to change at line 52 | | skipping to change at line 310 | |
| # include <sys/time.h> | | # include <sys/time.h> | |
| # include <signal.h> | | # include <signal.h> | |
| #endif | | #endif | |
| | | | |
| #include <sys/types.h> | | #include <sys/types.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
|
| /** | | /** | |
| * @file Ecore.h | | * @defgroup Ecore_Init_Group Ecore initialization and shutdown functions. | |
| * @defgroup Ecore_Group Ecore - Main Loop and Job Functions. | | * | |
| * @brief The file that provides the program utility, main loop and timer | | * @{ | |
| * functions. | | */ | |
| * | | | |
| * This header provides the Ecore event handling loop. For more | | EAPI int | |
| * details, see @ref Ecore_Main_Loop_Group. | | ecore_init(void); | |
| * | | EAPI int | |
| * For the main loop to be of any use, you need to be able to add events | | ecore_shutdown(void); | |
| * and event handlers. Events for file descriptor events are covered in | | | |
| * @ref Ecore_FD_Handler_Group. | | /** | |
| * | | * @} | |
| * Time functions are covered in @ref Ecore_Time_Group. | | */ | |
| * | | | |
| * There is also provision for callbacks for when the loop enters or | | /** | |
| * exits an idle state. See @ref Idle_Group for more information. | | * | |
| * | | * @defgroup Ecore_Main_Loop_Group Ecore main loop functions | |
| * Functions are also provided for spawning child processes using fork. | | * | |
| * See @ref Ecore_Exe_Group for more details. | | * These are functions acting on Ecore's main loop itself or on | |
| * | | * events and infrastructure directly linked to it. This loop is | |
| * @{ | | * designed to work on embedded systems all the way to large and | |
| */ | | * powerful multi-cpu workstations. | |
| | | * | |
| | | * It serialises all system signals and events into a single event | |
| | | * queue, that can be easily processed without needing to worry | |
| | | * about concurrency. A properly written, event-driven program | |
| | | * using this kind of programming does not need threads. It makes | |
| | | * the program very robust and easy to follow. | |
| | | * | |
| | | * For example, for the main loop to be of any use, you need to be | |
| | | * able to add @b events and event handlers on it. Events for file | |
| | | * descriptor events are covered in @ref Ecore_FD_Handler_Group. | |
| | | * | |
| | | * Timer functions are covered in @ref Ecore_Time_Group. | |
| | | * | |
| | | * There is also provision for callbacks for when the loop enters or | |
| | | * exits an @b idle state. See @ref Ecore_Idle_Group for more | |
| | | * information on it. | |
| | | * | |
| | | * Functions are also provided for spawning child processes using | |
| | | * @c fork(). See @ref Ecore_Exe_Group for more details on it. | |
| | | * | |
| | | * Here is an example of simple program and its basic event loop | |
| | | * flow: | |
| | | * | |
| | | * @image html prog_flow.png | |
| | | * @image latex prog_flow.eps width=\textwidth | |
| | | * | |
| | | * For examples of setting up and using a main loop, see | |
| | | * @ref Ecore_Main_Loop_Page. | |
| | | * | |
| | | * @{ | |
| | | */ | |
| | | | |
| #define ECORE_VERSION_MAJOR 1 | | #define ECORE_VERSION_MAJOR 1 | |
| #define ECORE_VERSION_MINOR 0 | | #define ECORE_VERSION_MINOR 0 | |
| | | | |
|
| typedef struct _Ecore_Version | | typedef struct _Ecore_Version | |
| { | | { | |
| int major; | | int major; | |
| int minor; | | int minor; | |
| int micro; | | int micro; | |
| int revision; | | int revision; | |
| } Ecore_Version; | | } Ecore_Version; | |
| | | | |
|
| EAPI extern Ecore_Version *ecore_version; | | EAPI extern Ecore_Version *ecore_version; | |
| | | | |
|
| #define ECORE_CALLBACK_CANCEL EINA_FALSE /**< Return value to remove a call | | #define ECORE_CALLBACK_CANCEL EINA_FALSE /**< Return value to remove a cal | |
| back */ | | lback */ | |
| #define ECORE_CALLBACK_RENEW EINA_TRUE /**< Return value to keep a callbac | | #define ECORE_CALLBACK_RENEW EINA_TRUE /**< Return value to keep a callba | |
| k */ | | ck */ | |
| | | | |
| #define ECORE_CALLBACK_PASS_ON EINA_TRUE /**< Return value to pass event to
next handler */ | | #define ECORE_CALLBACK_PASS_ON EINA_TRUE /**< Return value to pass event to
next handler */ | |
|
| #define ECORE_CALLBACK_DONE EINA_FALSE /**< Return value to stop event hand | | #define ECORE_CALLBACK_DONE EINA_FALSE /**< Return value to stop event h | |
| ling */ | | andling */ | |
| | | | |
| | | /** | |
| | | * @typedef Ecore_Task_Cb Ecore_Task_Cb | |
| | | * A callback run for a task (timer, idler, poller, animator, etc) | |
| | | */ | |
| | | typedef Eina_Bool (*Ecore_Task_Cb)(void *data); | |
| | | | |
| | | /** | |
| | | * @typedef Ecore_Eselect_Function Ecore_Eselect_Function | |
| | | * A function which can be used to replace select() in the main loop | |
| | | */ | |
| | | typedef int (*Ecore_Select_Function)(int nfds, fd_set *readfds, fd_set *wri | |
| | | tefds, fd_set *exceptfds, struct timeval *timeout); | |
| | | | |
| | | EAPI void | |
| | | ecore_main_loop_iterate(void); | |
| | | | |
| | | EAPI void | |
| | | ecore_main_loop_select_func_set(Ecore_Select_Function func); | |
| | | EAPI Ecore_Select_Function | |
| | | ecore_main_loop_select_func_get(void); | |
| | | | |
| | | EAPI Eina_Bool | |
| | | ecore_main_loop_glib_integrate(void); | |
| | | EAPI void | |
| | | ecore_main_loop_glib_always_integrate_disable(void); | |
| | | | |
| | | EAPI void | |
| | | ecore_main_loop_begin(void); | |
| | | EAPI void | |
| | | ecore_main_loop_quit(void); | |
| | | | |
| | | /** | |
| | | * @typedef Ecore_Cb Ecore_Cb | |
| | | * A generic callback called as a hook when a certain point in | |
| | | * execution is reached. | |
| | | */ | |
| | | typedef void (*Ecore_Cb)(void *data); | |
| | | | |
| | | /** | |
| | | * @typedef Ecore_Data_Cb Ecore_Data_Cb | |
| | | * A callback which is used to return data to the main function | |
| | | */ | |
| | | typedef void *(*Ecore_Data_Cb)(void *data); | |
| | | | |
| | | /** | |
| | | * @brief Call callback asynchronously in the main loop. | |
| | | * @since 1.1.0 | |
| | | * | |
| | | * @param callback The callback to call in the main loop | |
| | | * @param data The data to give to that call back | |
| | | * | |
| | | * For all calls that need to happen in the main loop (most EFL functions d | |
| | | o), | |
| | | * this helper function provides the infrastructure needed to do it safely | |
| | | * by avoiding dead lock, race condition and properly wake up the main loop | |
| | | . | |
| | | * | |
| | | * Remember after that function call, you should never touch again the @p d | |
| | | ata | |
| | | * in the thread, it is owned by the main loop and your callback should tak | |
| | | e | |
| | | * care of freeing it if necessary. | |
| | | */ | |
| | | EAPI void | |
| | | ecore_main_loop_thread_safe_call_async(Ecore_Cb callback, | |
| | | void *data); | |
| | | | |
| | | /** | |
| | | * @brief Call callback synchronously in the main loop. | |
| | | * @since 1.1.0 | |
| | | * | |
| | | * @param callback The callback to call in the main loop | |
| | | * @param data The data to give to that call back | |
| | | * @return the value returned by the callback in the main loop | |
| | | * | |
| | | * For all calls that need to happen in the main loop (most EFL functions d | |
| | | o), | |
| | | * this helper function provides the infrastructure needed to do it safely | |
| | | * by avoiding dead lock, race condition and properly wake up the main loop | |
| | | . | |
| | | * | |
| | | * Remember this function will block until the callback is executed in the | |
| | | * main loop. It can take time and you have no guaranty about the timeline. | |
| | | */ | |
| | | EAPI void * | |
| | | ecore_main_loop_thread_safe_call_sync(Ecore_Data_Cb callback, | |
| | | void *data); | |
| | | | |
| | | /** | |
| | | * @brief This function suspend the main loop in a know state | |
| | | * @since 1.1.0 | |
| | | * | |
| | | * @result the number of time ecore_thread_main_loop_begin() has been calle | |
| | | d | |
| | | * in this thread, if the main loop was suspended correctly. If not, it ret | |
| | | urn @c -1. | |
| | | * | |
| | | * This function suspend the main loop in a know state, this let you | |
| | | * use any EFL call you want after it return. Be carefull, the main loop | |
| | | * is blocked until you call ecore_thread_main_loop_end(). This is | |
| | | * the only sane way to achieve pseudo thread safety. | |
| | | * | |
| | | * Notice that until the main loop is blocked, the thread is blocked | |
| | | * and their is noway around that. | |
| | | * | |
| | | * We still advise you, when possible, to use ecore_main_loop_thread_safe_c | |
| | | all_async() | |
| | | * as it will not block the thread nor the main loop. | |
| | | */ | |
| | | EAPI int | |
| | | ecore_thread_main_loop_begin(void); | |
| | | | |
| | | /** | |
| | | * @brief Unlock the main loop. | |
| | | * @since 1.1.0 | |
| | | * | |
| | | * @result the number of time ecore_thread_main_loop_end() need to be calle | |
| | | d before | |
| | | * the main loop is unlocked again. @c -1 will be returned if you are tryin | |
| | | g to unlock | |
| | | * when there wasn't enough call to ecore_thread_main_loop_begin(). | |
| | | * | |
| | | * After a call to ecore_thread_main_loop_begin(), you need to absolutly | |
| | | * call ecore_thread_main_loop_end(), or you application will stay frozen. | |
| | | */ | |
| | | EAPI int | |
| | | ecore_thread_main_loop_end(void); | |
| | | | |
| | | /** | |
| | | * @} | |
| | | */ | |
| | | | |
| | | /** | |
| | | * @defgroup Ecore_Event_Group Ecore Event functions | |
| | | * | |
| | | * Ecore events are used to wake up the Ecore main loop to warn | |
| | | * about state changes, tasks completed, data available for reading | |
| | | * or writing, etc. They are the base of the event oriented | |
| | | * programming. | |
| | | * | |
| | | * The idea is to write many functions (callbacks) that will be | |
| | | * registered to specific events, and called when these events | |
| | | * happen. This way, when the system state changes (a mouse click is | |
| | | * detected, a key is pressed, or the content of a file changes, for | |
| | | * example), the respective callbacks will be called with some | |
| | | * information about that event. Usually the function/callback will | |
| | | * have a data pointer to the event info (the position in the screen | |
| | | * where the mouse was clicked, the name of the key that was | |
| | | * pressed, or the name of the file that has changed). | |
| | | * | |
| | | * The basic usage, when one needs to watch for an existing event, | |
| | | * is to register a callback to it using ecore_event_add(). Of | |
| | | * course it's necessary to know beforehand what are the types of | |
| | | * events that the system/library will emmit. This should be | |
| | | * available with the documentation from that system/library. | |
| | | * | |
| | | * When writing a library or group of functions that need to inform | |
| | | * about something, and you already are running on top of a main | |
| | | * loop, it is usually a good approach to use events. This way you | |
| | | * allow others to register as many callbacks as necessary to this | |
| | | * event, and don't have to care about who is registering to it. The | |
| | | * functions ecore_event_type_new() and ecore_event_add() are | |
| | | * available for this purpose. | |
| | | * | |
| | | * Example that deals with events: | |
| | | * | |
| | | * @li @ref ecore_event_example_c | |
| | | * | |
| | | * @ingroup Ecore_Main_Loop_Group | |
| | | * | |
| | | * @{ | |
| | | */ | |
| | | | |
| #define ECORE_EVENT_NONE 0 | | #define ECORE_EVENT_NONE 0 | |
| #define ECORE_EVENT_SIGNAL_USER 1 /**< User signal event */ | | #define ECORE_EVENT_SIGNAL_USER 1 /**< User signal event */ | |
| #define ECORE_EVENT_SIGNAL_HUP 2 /**< Hup signal event */ | | #define ECORE_EVENT_SIGNAL_HUP 2 /**< Hup signal event */ | |
| #define ECORE_EVENT_SIGNAL_EXIT 3 /**< Exit signal event */ | | #define ECORE_EVENT_SIGNAL_EXIT 3 /**< Exit signal event */ | |
| #define ECORE_EVENT_SIGNAL_POWER 4 /**< Power signal event */ | | #define ECORE_EVENT_SIGNAL_POWER 4 /**< Power signal event */ | |
| #define ECORE_EVENT_SIGNAL_REALTIME 5 /**< Realtime signal event */ | | #define ECORE_EVENT_SIGNAL_REALTIME 5 /**< Realtime signal event */ | |
| #define ECORE_EVENT_COUNT 6 | | #define ECORE_EVENT_COUNT 6 | |
| | | | |
|
| #define ECORE_EXE_PRIORITY_INHERIT 9999 | | typedef struct _Ecore_Win32_Handler Ecore_Win32_Handler; /**< A | |
| | | handle for HANDLE handlers on Windows */ | |
| | | typedef struct _Ecore_Event_Handler Ecore_Event_Handler; /**< A | |
| | | handle for an event handler */ | |
| | | typedef struct _Ecore_Event_Filter Ecore_Event_Filter; /**< A h | |
| | | andle for an event filter */ | |
| | | typedef struct _Ecore_Event Ecore_Event; /**< A handle f | |
| | | or an event */ | |
| | | typedef struct _Ecore_Event_Signal_User Ecore_Event_Signal_User; /** | |
| | | < User signal event */ | |
| | | typedef struct _Ecore_Event_Signal_Hup Ecore_Event_Signal_Hup; /**< | |
| | | Hup signal event */ | |
| | | typedef struct _Ecore_Event_Signal_Exit Ecore_Event_Signal_Exit; /** | |
| | | < Exit signal event */ | |
| | | typedef struct _Ecore_Event_Signal_Power Ecore_Event_Signal_Power; /* | |
| | | *< Power signal event */ | |
| | | typedef struct _Ecore_Event_Signal_Realtime Ecore_Event_Signal_Realtime; | |
| | | /**< Realtime signal event */ | |
| | | | |
| | | /** | |
| | | * @typedef Ecore_Filter_Cb | |
| | | * A callback used for filtering events from the main loop. | |
| | | */ | |
| | | typedef Eina_Bool (*Ecore_Filter_Cb)(void *data, void *loop_data, int type, | |
| | | void *event); | |
| | | | |
| | | /** | |
| | | * @typedef Ecore_End_Cb Ecore_End_Cb | |
| | | * This is the callback which is called at the end of a function, | |
| | | * usually for cleanup purposes. | |
| | | */ | |
| | | typedef void (*Ecore_End_Cb)(void *user_data, void *func_data); | |
| | | | |
| | | /** | |
| | | * @typedef Ecore_Event_Handler_Cb Ecore_Event_Handler_Cb | |
| | | * A callback used by the main loop to handle events of a specified | |
| | | * type. | |
| | | */ | |
| | | typedef Eina_Bool (*Ecore_Event_Handler_Cb)(void *data, int type, void *eve | |
| | | nt); | |
| | | | |
| | | struct _Ecore_Event_Signal_User /** User signal event */ | |
| | | { | |
| | | int number; /**< The signal number. Either 1 or 2 */ | |
| | | void *ext_data; /**< Extension data - not used */ | |
| | | | |
| | | #if !defined (_WIN32) && !defined (__lv2ppu__) | |
| | | siginfo_t data; /**< Signal info */ | |
| | | #endif | |
| | | }; | |
| | | | |
| | | struct _Ecore_Event_Signal_Hup /** Hup signal event */ | |
| | | { | |
| | | void *ext_data; /**< Extension data - not used */ | |
| | | | |
| | | #if !defined (_WIN32) && !defined (__lv2ppu__) | |
| | | siginfo_t data; /**< Signal info */ | |
| | | #endif | |
| | | }; | |
| | | | |
| | | struct _Ecore_Event_Signal_Exit /** Exit request event */ | |
| | | { | |
| | | Eina_Bool interrupt : 1; /**< Set if the exit request was an interrupt | |
| | | signal*/ | |
| | | Eina_Bool quit : 1; /**< set if the exit request was a quit signal | |
| | | */ | |
| | | Eina_Bool terminate : 1; /**< Set if the exit request was a terminate si | |
| | | ngal */ | |
| | | void *ext_data; /**< Extension data - not used */ | |
| | | | |
| | | #if !defined (_WIN32) && !defined (__lv2ppu__) | |
| | | siginfo_t data; /**< Signal info */ | |
| | | #endif | |
| | | }; | |
| | | | |
| | | struct _Ecore_Event_Signal_Power /** Power event */ | |
| | | { | |
| | | void *ext_data; /**< Extension data - not used */ | |
| | | | |
| | | #if !defined (_WIN32) && !defined (__lv2ppu__) | |
| | | siginfo_t data; /**< Signal info */ | |
| | | #endif | |
| | | }; | |
| | | | |
| | | struct _Ecore_Event_Signal_Realtime /** Realtime event */ | |
| | | { | |
| | | int num; /**< The realtime signal's number */ | |
| | | | |
| | | #if !defined (_WIN32) && !defined (__lv2ppu__) | |
| | | siginfo_t data; /**< Signal info */ | |
| | | #endif | |
| | | }; | |
| | | | |
| | | EAPI Ecore_Event_Handler * | |
| | | ecore_event_handler_add(int type, | |
| | | Ecore_Event_Handler_Cb func, | |
| | | const void *data); | |
| | | EAPI void * | |
| | | ecore_event_handler_del(Ecore_Event_Handler *event_handler); | |
| | | EAPI Ecore_Event * | |
| | | ecore_event_add(int type, | |
| | | void *ev, | |
| | | Ecore_End_Cb func_free, | |
| | | void *data); | |
| | | EAPI void * | |
| | | ecore_event_del(Ecore_Event *event); | |
| | | EAPI void * | |
| | | ecore_event_handler_data_get(Ecore_Event_Handler *eh); | |
| | | EAPI void * | |
| | | ecore_event_handler_data_set(Ecore_Event_Handler *eh, | |
| | | const void *data); | |
| | | EAPI int | |
| | | ecore_event_type_new(void); | |
| | | EAPI Ecore_Event_Filter * | |
| | | ecore_event_filter_add(Ecore_Data_Cb func_start, | |
| | | Ecore_Filter_Cb func_filter, | |
| | | Ecore_End_Cb func_end, | |
| | | const void *data); | |
| | | EAPI void * | |
| | | ecore_event_filter_del(Ecore_Event_Filter *ef); | |
| | | EAPI int | |
| | | ecore_event_current_type_get(void); | |
| | | EAPI void * | |
| | | ecore_event_current_event_get(void); | |
| | | | |
| | | /** | |
| | | * @} | |
| | | */ | |
| | | | |
| | | /** | |
| | | * @defgroup Ecore_Exe_Group Process Spawning Functions | |
| | | * | |
| | | * Functions that deal with and send signals to spawned processes. | |
| | | * | |
| | | * @ingroup Ecore_Main_Loop_Group | |
| | | * | |
| | | * @{ | |
| | | */ | |
| | | | |
| | | #define ECORE_EXE_PRIORITY_INHERIT 9999 | |
| | | | |
| | | EAPI extern int ECORE_EXE_EVENT_ADD; /**< A child process has been adde | |
| | | d */ | |
| | | EAPI extern int ECORE_EXE_EVENT_DEL; /**< A child process has been dele | |
| | | ted (it exited, naming consistent with the rest of ecore). */ | |
| | | EAPI extern int ECORE_EXE_EVENT_DATA; /**< Data from a child process. */ | |
| | | EAPI extern int ECORE_EXE_EVENT_ERROR; /**< Errors from a child process. | |
| | | */ | |
| | | | |
| | | enum _Ecore_Exe_Flags /* flags for executing a child with its stdin and/ | |
| | | or stdout piped back */ | |
| | | { | |
| | | ECORE_EXE_NONE = 0, /**< No exe flags at all */ | |
| | | ECORE_EXE_PIPE_READ = 1, /**< Exe Pipe Read mask */ | |
| | | ECORE_EXE_PIPE_WRITE = 2, /**< Exe Pipe Write mask */ | |
| | | ECORE_EXE_PIPE_ERROR = 4, /**< Exe Pipe error mask */ | |
| | | ECORE_EXE_PIPE_READ_LINE_BUFFERED = 8, /**< Reads are buffered until a n | |
| | | ewline and split 1 line per Ecore_Exe_Event_Data_Line */ | |
| | | ECORE_EXE_PIPE_ERROR_LINE_BUFFERED = 16, /**< Errors are buffered until | |
| | | a newline and split 1 line per Ecore_Exe_Event_Data_Line */ | |
| | | ECORE_EXE_PIPE_AUTO = 32, /**< stdout and stderr are buffered automatica | |
| | | lly */ | |
| | | ECORE_EXE_RESPAWN = 64, /**< FIXME: Exe is restarted if it dies */ | |
| | | ECORE_EXE_USE_SH = 128, /**< Use /bin/sh to run the command. */ | |
| | | ECORE_EXE_NOT_LEADER = 256, /**< Do not use setsid() to have the execute | |
| | | d process be its own session leader */ | |
| | | ECORE_EXE_TERM_WITH_PARENT = 512 /**< Makes child receive SIGTERM when p | |
| | | arent dies. */ | |
| | | }; | |
| | | typedef enum _Ecore_Exe_Flags Ecore_Exe_Flags; | |
| | | | |
| | | enum _Ecore_Exe_Win32_Priority | |
| | | { | |
| | | ECORE_EXE_WIN32_PRIORITY_IDLE, /**< Idle priority, for monitoring th | |
| | | e system */ | |
| | | ECORE_EXE_WIN32_PRIORITY_BELOW_NORMAL, /**< Below default priority * | |
| | | / | |
| | | ECORE_EXE_WIN32_PRIORITY_NORMAL, /**< Default priority */ | |
| | | ECORE_EXE_WIN32_PRIORITY_ABOVE_NORMAL, /**< Above default priority * | |
| | | / | |
| | | ECORE_EXE_WIN32_PRIORITY_HIGH, /**< High priority, use with care as | |
| | | other threads in the system will not get processor time */ | |
| | | ECORE_EXE_WIN32_PRIORITY_REALTIME /**< Realtime priority, should be | |
| | | almost never used as it can interrupt system threads that manage mouse inpu | |
| | | t, keyboard input, and background disk flushing */ | |
| | | }; | |
| | | typedef enum _Ecore_Exe_Win32_Priority Ecore_Exe_Win32_Priority; | |
| | | | |
| | | typedef struct _Ecore_Exe Ecore_Exe; /**< A handle for spawned | |
| | | processes */ | |
| | | | |
| | | /** | |
| | | * @typedef Ecore_Exe_Cb Ecore_Exe_Cb | |
| | | * A callback to run with the associated @ref Ecore_Exe, usually | |
| | | * for cleanup purposes. | |
| | | */ | |
| | | typedef void (*Ecore_Exe_Cb)(void *data, const E | |
| | | core_Exe *exe); | |
| | | | |
| | | typedef struct _Ecore_Exe_Event_Add Ecore_Exe_Event_Add; /**< Spawned | |
| | | Exe add event */ | |
| | | typedef struct _Ecore_Exe_Event_Del Ecore_Exe_Event_Del; /**< Spawned | |
| | | Exe exit event */ | |
| | | typedef struct _Ecore_Exe_Event_Data_Line Ecore_Exe_Event_Data_Line; /**< L | |
| | | ines from a child process */ | |
| | | typedef struct _Ecore_Exe_Event_Data Ecore_Exe_Event_Data; /**< Data f | |
| | | rom a child process */ | |
| | | | |
| | | struct _Ecore_Exe_Event_Add /** Process add event */ | |
| | | { | |
| | | Ecore_Exe *exe; /**< The handle to the added process */ | |
| | | void *ext_data; /**< Extension data - not used */ | |
| | | }; | |
| | | | |
| | | struct _Ecore_Exe_Event_Del /** Process exit event */ | |
| | | { | |
| | | pid_t pid; /**< The process ID of the process that exited */ | |
| | | int exit_code; /**< The exit code of the process */ | |
| | | Ecore_Exe *exe; /**< The handle to the exited process, or NULL if not fo | |
| | | und */ | |
| | | int exit_signal; /** < The signal that caused the process to exit | |
| | | */ | |
| | | Eina_Bool exited : 1; /** < set to 1 if the process exited of its ow | |
| | | n accord */ | |
| | | Eina_Bool signalled : 1; /** < set to 1 id the process exited due to un | |
| | | caught signal */ | |
| | | void *ext_data; /**< Extension data - not used */ | |
| | | #if !defined (_WIN32) && !defined (__lv2ppu__) | |
| | | siginfo_t data; /**< Signal info */ | |
| | | #endif | |
| | | }; | |
| | | | |
|
| EAPI extern int ECORE_EXE_EVENT_ADD; /**< A child process has been added | | struct _Ecore_Exe_Event_Data_Line /**< Lines from a child process */ | |
| */ | | { | |
| EAPI extern int ECORE_EXE_EVENT_DEL; /**< A child process has been delet | | char *line; | |
| ed (it exited, naming consistent with the rest of ecore). */ | | int size; | |
| EAPI extern int ECORE_EXE_EVENT_DATA; /**< Data from a child process. */ | | }; | |
| EAPI extern int ECORE_EXE_EVENT_ERROR; /**< Errors from a child process. | | | |
| */ | | struct _Ecore_Exe_Event_Data /** Data from a child process event */ | |
| | | { | |
| enum _Ecore_Fd_Handler_Flags | | Ecore_Exe *exe; /**< The handle to the process */ | |
| { | | void *data; /**< the raw binary data from the child | |
| ECORE_FD_READ = 1, /**< Fd Read mask */ | | process that was received */ | |
| ECORE_FD_WRITE = 2, /**< Fd Write mask */ | | int size; /**< the size of this data in bytes */ | |
| ECORE_FD_ERROR = 4 /**< Fd Error mask */ | | Ecore_Exe_Event_Data_Line *lines; /**< an array of line data if line buf | |
| }; | | fered, the last one has it's line member set to NULL */ | |
| typedef enum _Ecore_Fd_Handler_Flags Ecore_Fd_Handler_Flags; | | }; | |
| | | | |
| enum _Ecore_Exe_Flags /* flags for executing a child with its stdin and/ | | EAPI void | |
| or stdout piped back */ | | ecore_exe_run_priority_set(int pri); | |
| { | | EAPI int | |
| ECORE_EXE_NONE = 0, /**< No exe flags at all */ | | ecore_exe_run_priority_get(void); | |
| ECORE_EXE_PIPE_READ = 1, /**< Exe Pipe Read mask */ | | EAPI Ecore_Exe * | |
| ECORE_EXE_PIPE_WRITE = 2, /**< Exe Pipe Write mask */ | | ecore_exe_run(const char *exe_cmd, | |
| ECORE_EXE_PIPE_ERROR = 4, /**< Exe Pipe error mask */ | | const void *data); | |
| ECORE_EXE_PIPE_READ_LINE_BUFFERED = 8, /**< Reads are buffered unti | | EAPI Ecore_Exe * | |
| l a newline and delivered 1 event per line */ | | ecore_exe_pipe_run(const char *exe_cmd, | |
| ECORE_EXE_PIPE_ERROR_LINE_BUFFERED = 16, /**< Errors are buffered u | | Ecore_Exe_Flags flags, | |
| ntil a newline and delivered 1 event per line */ | | const void *data); | |
| ECORE_EXE_PIPE_AUTO = 32, /**< stdout and stderr are buffered autom | | EAPI void | |
| atically */ | | ecore_exe_callback_pre_free_set(Ecore_Exe *exe, | |
| ECORE_EXE_RESPAWN = 64, /**< FIXME: Exe is restarted if it dies */ | | Ecore_Exe_Cb func); | |
| ECORE_EXE_USE_SH = 128, /**< Use /bin/sh to run the command. */ | | EAPI Eina_Bool | |
| ECORE_EXE_NOT_LEADER = 256 /**< Do not use setsid() to have the exe | | ecore_exe_send(Ecore_Exe *exe, | |
| cuted process be its own session leader */ | | const void *data, | |
| }; | | int size); | |
| typedef enum _Ecore_Exe_Flags Ecore_Exe_Flags; | | EAPI void | |
| | | ecore_exe_close_stdin(Ecore_Exe *exe); | |
| enum _Ecore_Exe_Win32_Priority | | EAPI void | |
| { | | ecore_exe_auto_limits_set(Ecore_Exe *exe, | |
| ECORE_EXE_WIN32_PRIORITY_IDLE, /**< Idle priority, for monitoring th | | int start_bytes, | |
| e system */ | | int end_bytes, | |
| ECORE_EXE_WIN32_PRIORITY_BELOW_NORMAL, /**< Below default priority * | | int start_lines, | |
| / | | int end_lines); | |
| ECORE_EXE_WIN32_PRIORITY_NORMAL, /**< Default priority */ | | EAPI Ecore_Exe_Event_Data * | |
| ECORE_EXE_WIN32_PRIORITY_ABOVE_NORMAL, /**< Above default priority * | | ecore_exe_event_data_get(Ecore_Exe *exe, | |
| / | | Ecore_Exe_Flags flags); | |
| ECORE_EXE_WIN32_PRIORITY_HIGH, /**< High priority, use with care as | | EAPI void | |
| other threads in the system will not get processor time */ | | ecore_exe_event_data_free(Ecore_Exe_Event_Data *data); | |
| ECORE_EXE_WIN32_PRIORITY_REALTIME /**< Realtime priority, should be | | EAPI void * | |
| almost never used as it can interrupt system threads that manage mouse inpu | | ecore_exe_free(Ecore_Exe *exe); | |
| t, keyboard input, and background disk flushing */ | | EAPI pid_t | |
| }; | | ecore_exe_pid_get(const Ecore_Exe *exe); | |
| typedef enum _Ecore_Exe_Win32_Priority Ecore_Exe_Win32_Priority; | | EAPI void | |
| | | ecore_exe_tag_set(Ecore_Exe *exe, | |
| enum _Ecore_Poller_Type /* Poller types */ | | const char *tag); | |
| { | | EAPI const char * | |
| ECORE_POLLER_CORE = 0 /**< The core poller interval */ | | ecore_exe_tag_get(const Ecore_Exe *exe); | |
| }; | | EAPI const char * | |
| typedef enum _Ecore_Poller_Type Ecore_Poller_Type; | | ecore_exe_cmd_get(const Ecore_Exe *exe); | |
| | | EAPI void * | |
| typedef struct _Ecore_Exe Ecore_Exe; /**< A handle for | | ecore_exe_data_get(const Ecore_Exe *exe); | |
| spawned processes */ | | EAPI void * | |
| typedef struct _Ecore_Timer Ecore_Timer; /**< A handle f | | ecore_exe_data_set(Ecore_Exe *exe, | |
| or timers */ | | void *data); | |
| typedef struct _Ecore_Idler Ecore_Idler; /**< A handle f | | EAPI Ecore_Exe_Flags | |
| or idlers */ | | ecore_exe_flags_get(const Ecore_Exe *exe); | |
| typedef struct _Ecore_Idle_Enterer Ecore_Idle_Enterer; /**< A h | | EAPI void | |
| andle for idle enterers */ | | ecore_exe_pause(Ecore_Exe *exe); | |
| typedef struct _Ecore_Idle_Exiter Ecore_Idle_Exiter; /**< A ha | | EAPI void | |
| ndle for idle exiters */ | | ecore_exe_continue(Ecore_Exe *exe); | |
| typedef struct _Ecore_Fd_Handler Ecore_Fd_Handler; /**< A han | | EAPI void | |
| dle for Fd handlers */ | | ecore_exe_interrupt(Ecore_Exe *exe); | |
| typedef struct _Ecore_Win32_Handler Ecore_Win32_Handler; /**< A | | EAPI void | |
| handle for HANDLE handlers on Windows */ | | ecore_exe_quit(Ecore_Exe *exe); | |
| typedef struct _Ecore_Event_Handler Ecore_Event_Handler; /**< A | | EAPI void | |
| handle for an event handler */ | | ecore_exe_terminate(Ecore_Exe *exe); | |
| typedef struct _Ecore_Event_Filter Ecore_Event_Filter; /**< A h | | EAPI void | |
| andle for an event filter */ | | ecore_exe_kill(Ecore_Exe *exe); | |
| typedef struct _Ecore_Event Ecore_Event; /**< A handle f | | EAPI void | |
| or an event */ | | ecore_exe_signal(Ecore_Exe *exe, | |
| typedef struct _Ecore_Animator Ecore_Animator; /**< A handl | | int num); | |
| e for animators */ | | EAPI void | |
| typedef struct _Ecore_Pipe Ecore_Pipe; /**< A handle fo | | ecore_exe_hup(Ecore_Exe *exe); | |
| r pipes */ | | | |
| typedef struct _Ecore_Poller Ecore_Poller; /**< A handle | | /** | |
| for pollers */ | | * @} | |
| typedef struct _Ecore_Event_Signal_User Ecore_Event_Signal_User; /** | | */ | |
| < User signal event */ | | | |
| typedef struct _Ecore_Event_Signal_Hup Ecore_Event_Signal_Hup; /**< | | /** | |
| Hup signal event */ | | * @defgroup Ecore_FD_Handler_Group File Event Handling Functions | |
| typedef struct _Ecore_Event_Signal_Exit Ecore_Event_Signal_Exit; /** | | * | |
| < Exit signal event */ | | * Functions that deal with file descriptor handlers. | |
| typedef struct _Ecore_Event_Signal_Power Ecore_Event_Signal_Power; /* | | * | |
| *< Power signal event */ | | * The @ref Ecore_Fd_Handler can be used to watch a file descriptor | |
| typedef struct _Ecore_Event_Signal_Realtime Ecore_Event_Signal_Realtime; | | * for data available for reading, for the availability to write | |
| /**< Realtime signal event */ | | * without blocking, and for errors on the file descriptor. | |
| typedef struct _Ecore_Exe_Event_Add Ecore_Exe_Event_Add; /**< Sp | | * | |
| awned Exe add event */ | | * ecore_main_fd_handler_add() is used to setup a handler for a | |
| typedef struct _Ecore_Exe_Event_Del Ecore_Exe_Event_Del; /**< Sp | | * given file descriptor. This file descriptor can be the standard | |
| awned Exe exit event */ | | * input, a network socket, a stream received through some driver | |
| typedef struct _Ecore_Exe_Event_Data_Line Ecore_Exe_Event_Data_Line; / | | * of a hardware decoder, etc. Thus it can contain errors, like a | |
| **< Lines from a child process */ | | * disconnection, a broken pipe, and so, and that's why it's | |
| typedef struct _Ecore_Exe_Event_Data Ecore_Exe_Event_Data; /**< D | | * possible to check for these errors with the @ref ECORE_FD_ERROR | |
| ata from a child process */ | | * flag. | |
| typedef struct _Ecore_Thread Ecore_Thread; | | * | |
| | | * An @ref Ecore_Fd_Handler can be used to watch on a file | |
| /** | | * descriptor without blocking, still being able to receive events, | |
| * @typedef Ecore_Data_Cb Ecore_Data_Cb | | * expire timers, and other watch for other things that happen in | |
| * A callback which is used to return data to the main function | | * the Ecore main loop. | |
| */ | | * | |
| typedef void *(*Ecore_Data_Cb) (void *data); | | * Example of use of a file descriptor handler: | |
| /** | | * @li @ref ecore_fd_handler_example_c | |
| * @typedef Ecore_Filter_Cb | | * | |
| * A callback used for filtering events from the main loop. | | * @ingroup Ecore_Main_Loop_Group | |
| */ | | * | |
| typedef Eina_Bool (*Ecore_Filter_Cb) (void *data, void *loop_data, int t | | * @{ | |
| ype, void *event); | | */ | |
| /** | | | |
| * @typedef Ecore_Eselect_Function Ecore_Eselect_Function | | typedef struct _Ecore_Fd_Handler Ecore_Fd_Handler; /**< A handle for Fd han | |
| * A function which can be used to replace select() in the main loop | | dlers */ | |
| */ | | | |
| typedef int (*Ecore_Select_Function)(int nfds, fd_set *readfds, fd_set * | | enum _Ecore_Fd_Handler_Flags | |
| writefds, fd_set *exceptfds, struct timeval *timeout); | | { | |
| /** | | ECORE_FD_READ = 1, /**< Fd Read mask */ | |
| * @typedef Ecore_End_Cb Ecore_End_Cb | | ECORE_FD_WRITE = 2, /**< Fd Write mask */ | |
| * This is the callback which is called at the end of a function, usuall | | ECORE_FD_ERROR = 4 /**< Fd Error mask */ | |
| y for cleanup purposes. | | }; | |
| */ | | typedef enum _Ecore_Fd_Handler_Flags Ecore_Fd_Handler_Flags; | |
| typedef void (*Ecore_End_Cb) (void *user_data, void *func_data); | | | |
| /** | | /** | |
| * @typedef Ecore_Pipe_Cb Ecore_Pipe_Cb | | * @typedef Ecore_Fd_Cb Ecore_Fd_Cb | |
| * The callback that data written to the pipe is sent to. | | * A callback used by an @ref Ecore_Fd_Handler. | |
| */ | | */ | |
| typedef void (*Ecore_Pipe_Cb) (void *data, void *buffer, unsigned int nb | | typedef Eina_Bool (*Ecore_Fd_Cb)(void *data, Ecore_Fd_Handler *fd_handler); | |
| yte); | | | |
| /** | | /** | |
| * @typedef Ecore_Exe_Cb Ecore_Exe_Cb | | * @typedef Ecore_Fd_Prep_Cb Ecore_Fd_Prep_Cb | |
| * A callback to run with the associated @ref Ecore_Exe, usually for cle | | * A callback used by an @ref Ecore_Fd_Handler. | |
| anup purposes. | | */ | |
| */ | | typedef void (*Ecore_Fd_Prep_Cb)(void *data, Ecore_Fd_Handler *fd_handler); | |
| typedef void (*Ecore_Exe_Cb)(void *data, const Ecore_Exe *exe); | | | |
| /** | | /** | |
| * @typedef Ecore_Event_Handler_Cb Ecore_Event_Handler_Cb | | * @typedef Ecore_Win32_Handle_Cb Ecore_Win32_Handle_Cb | |
| * A callback used by the main loop to handle events of a specified type | | * A callback used by an @ref Ecore_Win32_Handler. | |
| . | | */ | |
| */ | | typedef Eina_Bool (*Ecore_Win32_Handle_Cb)(void *data, Ecore_Win32_Handler | |
| typedef Eina_Bool (*Ecore_Event_Handler_Cb) (void *data, int type, void | | *wh); | |
| *event); | | | |
| /** | | EAPI Ecore_Fd_Handler * | |
| * @typedef Ecore_Thread_Cb Ecore_Thread_Cb | | ecore_main_fd_handler_add(int fd, | |
| * A callback used by Ecore_Thread helper. | | Ecore_Fd_Handler_Flags flags, | |
| */ | | Ecore_Fd_Cb func, | |
| typedef void (*Ecore_Thread_Cb) (void *data, Ecore_Thread *thread); | | const void *data, | |
| /** | | Ecore_Fd_Cb buf_func, | |
| * @typedef Ecore_Thread_Notify_Cb Ecore_Thread_Notify_Cb | | const void *buf_data); | |
| * A callback used by the main loop to receive data sent by an @ref Ecor | | EAPI void | |
| e_Thread_Group. | | ecore_main_fd_handler_prepare_callback_set(Ecore_Fd_Handler *fd_handler, | |
| */ | | Ecore_Fd_Prep_Cb func, | |
| typedef void (*Ecore_Thread_Notify_Cb) (void *data, Ecore_Thread *thread, | | const void *data); | |
| void *msg_data); | | EAPI void * | |
| /** | | ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler); | |
| * @typedef Ecore_Task_Cb Ecore_Task_Cb | | EAPI int | |
| * A callback run for a task (timer, idler, poller, animater, etc) | | ecore_main_fd_handler_fd_get(Ecore_Fd_Handler *fd_handler); | |
| */ | | EAPI Eina_Bool | |
| typedef Eina_Bool (*Ecore_Task_Cb) (void *data); | | ecore_main_fd_handler_active_get(Ecore_Fd_Handler *fd_handler, | |
| /** | | Ecore_Fd_Handler_Flags flags); | |
| * @typedef Ecore_Cb Ecore_Cb | | EAPI void | |
| * A generic callback called as a hook when a certain point in execution | | ecore_main_fd_handler_active_set(Ecore_Fd_Handler *fd_handler, | |
| is reached. | | Ecore_Fd_Handler_Flags flags); | |
| */ | | | |
| typedef void (*Ecore_Cb) (void *data); | | EAPI Ecore_Win32_Handler * | |
| /** | | ecore_main_win32_handler_add(void *h, | |
| * @typedef Ecore_Fd_Cb Ecore_Fd_Cb | | Ecore_Win32_Handle_Cb func, | |
| * A callback used by an @ref Ecore_Fd_Handler. | | const void *data); | |
| */ | | EAPI void * | |
| typedef Eina_Bool (*Ecore_Fd_Cb) (void *data, Ecore_Fd_Handler *fd_handl | | ecore_main_win32_handler_del(Ecore_Win32_Handler *win32_handler); | |
| er); | | | |
| /** | | /** | |
| * @typedef Ecore_Fd_Prep_Cb Ecore_Fd_Prep_Cb | | * @} | |
| * A callback used by an @ref Ecore_Fd_Handler. | | */ | |
| */ | | | |
| typedef void (*Ecore_Fd_Prep_Cb) (void *data, Ecore_Fd_Handler *fd_handl | | /** | |
| er); | | * @defgroup Ecore_Poller_Group Ecore Poll functions | |
| /** | | * | |
| * @typedef Ecore_Win32_Handle_Cb Ecore_Win32_Handle_Cb | | * These functions are for the need to poll information, but provide | |
| * A callback used by an @ref Ecore_Win32_Handler. | | * a shared abstracted API to pool such polling to minimise wakeup | |
| */ | | * and ensure all the polling happens in as few spots as possible | |
| typedef Eina_Bool (*Ecore_Win32_Handle_Cb) (void *data, Ecore_Win32_Hand | | * areound a core poll interval. For now only 1 core poller type is | |
| ler *wh); | | * supprted: ECORE_POLLER_CORE | |
| | | * | |
| typedef struct _Ecore_Job Ecore_Job; /**< A job handle */ | | * Example of @ref Ecore_Poller: | |
| | | * @li @ref ecore_poller_example_c | |
| struct _Ecore_Event_Signal_User /** User signal event */ | | * | |
| { | | * @ingroup Ecore_Main_Loop_Group | |
| int number; /**< The signal number. Either 1 or 2 */ | | * | |
| void *ext_data; /**< Extension data - not used */ | | * @{ | |
| | | */ | |
| #ifndef _WIN32 | | | |
| siginfo_t data; /**< Signal info */ | | enum _Ecore_Poller_Type /* Poller types */ | |
| #endif | | { | |
| }; | | ECORE_POLLER_CORE = 0 /**< The core poller interval */ | |
| | | }; | |
| struct _Ecore_Event_Signal_Hup /** Hup signal event */ | | typedef enum _Ecore_Poller_Type Ecore_Poller_Type; | |
| { | | | |
| void *ext_data; /**< Extension data - not used */ | | typedef struct _Ecore_Poller Ecore_Poller; /**< A handle for pollers */ | |
| | | | |
| #ifndef _WIN32 | | EAPI void | |
| siginfo_t data; /**< Signal info */ | | ecore_poller_poll_interval_set(Ecore_Poller_Type type, | |
| #endif | | double poll_time); | |
| }; | | EAPI double | |
| | | ecore_poller_poll_interval_get(Ecore_Poller_Type type); | |
| struct _Ecore_Event_Signal_Exit /** Exit request event */ | | EAPI Eina_Bool | |
| { | | ecore_poller_poller_interval_set(Ecore_Poller *poller, | |
| Eina_Bool interrupt : 1; /**< Set if the exit request was an inte | | int interval); | |
| rrupt signal*/ | | EAPI int | |
| Eina_Bool quit : 1; /**< set if the exit request was a quit | | ecore_poller_poller_interval_get(Ecore_Poller *poller); | |
| signal */ | | EAPI Ecore_Poller * | |
| Eina_Bool terminate : 1; /**< Set if the exit request was a termi | | ecore_poller_add(Ecore_Poller_Type type, | |
| nate singal */ | | int interval, | |
| void *ext_data; /**< Extension data - not used */ | | Ecore_Task_Cb func, | |
| | | const void *data); | |
| #ifndef _WIN32 | | EAPI void *ecore_poller_del(Ecore_Poller *poller); | |
| siginfo_t data; /**< Signal info */ | | | |
| #endif | | /** | |
| }; | | * @} | |
| | | */ | |
| struct _Ecore_Event_Signal_Power /** Power event */ | | | |
| { | | /** | |
| void *ext_data; /**< Extension data - not used */ | | * @defgroup Ecore_Animator_Group Ecore Animator functions | |
| | | * | |
| #ifndef _WIN32 | | * @brief Ecore animators are a helper to simplify creating | |
| siginfo_t data; /**< Signal info */ | | * animations. | |
| #endif | | * | |
| }; | | * Creating an animation is as simple as saying for how long it | |
| | | * should be run and having a callback that does the animation, | |
| struct _Ecore_Event_Signal_Realtime /** Realtime event */ | | * something like this: | |
| { | | * @code | |
| int num; /**< The realtime signal's number */ | | * static Eina_Bool | |
| | | * _do_animation(void *data, double pos) | |
| #ifndef _WIN32 | | * { | |
| siginfo_t data; /**< Signal info */ | | * evas_object_move(data, 100 * pos, 100 * pos); | |
| #endif | | * ... do some more animating ... | |
| }; | | * } | |
| | | * ... | |
| struct _Ecore_Exe_Event_Add /** Process add event */ | | * ecore_animator_timeline_add(2, _do_animation, my_evas_object); | |
| { | | * @endcode | |
| Ecore_Exe *exe; /**< The handle to the added process */ | | * In the sample above we create an animation to move | |
| void *ext_data; /**< Extension data - not used */ | | * @c my_evas_object from position (0,0) to (100,100) in 2 seconds. | |
| }; | | * | |
| | | * If your animation will run for an unspecified amount of time you | |
| struct _Ecore_Exe_Event_Del /** Process exit event */ | | * can use ecore_animator_add(), which is like using | |
| { | | * ecore_timer_add() with the interval being the | |
| pid_t pid; /**< The process ID of the process that exited * | | * @ref ecore_animator_frametime_set "framerate". Note that this has | |
| / | | * tangible benefits to creating a timer for each animation in terms | |
| int exit_code; /**< The exit code of the process */ | | * of performance. | |
| Ecore_Exe *exe; /**< The handle to the exited process, or NULL i | | * | |
| f not found */ | | * For a more detailed example that show several animation see | |
| int exit_signal; /** < The signal that caused the process | | * @ref tutorial_ecore_animator. | |
| to exit */ | | * | |
| Eina_Bool exited : 1; /** < set to 1 if the process exited of i | | * @ingroup Ecore_Main_Loop_Group | |
| ts own accord */ | | * | |
| Eina_Bool signalled : 1; /** < set to 1 id the process exited due | | * @{ | |
| to uncaught signal */ | | */ | |
| void *ext_data; /**< Extension data - not used */ | | | |
| #ifndef _WIN32 | | typedef struct _Ecore_Animator Ecore_Animator; /**< A handle for animators | |
| siginfo_t data; /**< Signal info */ | | */ | |
| #endif | | | |
| }; | | enum _Ecore_Pos_Map /* Position mappings */ | |
| | | { | |
| struct _Ecore_Exe_Event_Data_Line /**< Lines from a child process */ | | ECORE_POS_MAP_LINEAR, /**< Linear 0.0 -> 1.0 */ | |
| { | | ECORE_POS_MAP_ACCELERATE, /**< Start slow then speed up */ | |
| char *line; | | ECORE_POS_MAP_DECELERATE, /**< Start fast then slow down */ | |
| int size; | | ECORE_POS_MAP_SINUSOIDAL, /**< Start slow, speed up then slow down at en | |
| }; | | d */ | |
| | | ECORE_POS_MAP_ACCELERATE_FACTOR, /**< Start slow then speed up, v1 being | |
| struct _Ecore_Exe_Event_Data /** Data from a child process event */ | | a power factor, 0.0 being linear, 1.0 being normal accelerate, 2.0 being m | |
| { | | uch more pronounced accelerate (squared), 3.0 being cubed, etc. */ | |
| Ecore_Exe *exe; /**< The handle to the process */ | | ECORE_POS_MAP_DECELERATE_FACTOR, /**< Start fast then slow down, v1 bein | |
| void *data; /**< the raw binary data from the child process that wa | | g a power factor, 0.0 being linear, 1.0 being normal decelerate, 2.0 being | |
| s received */ | | much more pronounced decelerate (squared), 3.0 being cubed, etc. */ | |
| int size; /**< the size of this data in bytes */ | | ECORE_POS_MAP_SINUSOIDAL_FACTOR, /**< Start slow, speed up then slow dow | |
| Ecore_Exe_Event_Data_Line *lines; /**< an array of line data if lin | | n at end, v1 being a power factor, 0.0 being linear, 1.0 being normal sinus | |
| e buffered, the last one has it's line member set to NULL */ | | oidal, 2.0 being much more pronounced sinusoidal (squared), 3.0 being cubed | |
| }; | | , etc. */ | |
| | | ECORE_POS_MAP_DIVISOR_INTERP, /**< Start at gradient * v1, interpolated | |
| /** | | via power of v2 curve */ | |
| * @defgroup Ecore_Init_Group Ecore initialisation and shutdown functions | | ECORE_POS_MAP_BOUNCE, /**< Start at 0.0 then "drop" like a ball bouncing | |
| . | | to the ground at 1.0, and bounce v2 times, with decay factor of v1 */ | |
| */ | | ECORE_POS_MAP_SPRING /**< Start at 0.0 then "wobble" like a spring rest | |
| | | position 1.0, and wobble v2 times, with decay factor of v1 */ | |
| EAPI int ecore_init(void); | | }; | |
| EAPI int ecore_shutdown(void); | | typedef enum _Ecore_Pos_Map Ecore_Pos_Map; | |
| | | | |
| /** | | enum _Ecore_Animator_Source /* Timing sources for animators */ | |
| * @} | | { | |
| */ | | ECORE_ANIMATOR_SOURCE_TIMER, /**< The default system clock/timer based a | |
| | | nimator that ticks every "frametime" seconds */ | |
| /** | | ECORE_ANIMATOR_SOURCE_CUSTOM /**< A custom animator trigger that you nee | |
| * @defgroup Ecore_Application_Group Ecore Application functions | | d to call ecore_animator_trigger() to make it tick */ | |
| * | | }; | |
| * @{ | | typedef enum _Ecore_Animator_Source Ecore_Animator_Source; | |
| */ | | | |
| | | /** | |
| EAPI void ecore_app_args_set(int argc, const char **argv); | | * @typedef Ecore_Timeline_Cb Ecore_Timeline_Cb | |
| EAPI void ecore_app_args_get(int *argc, char ***argv); | | * A callback run for a task (animators with runtimes) | |
| EAPI void ecore_app_restart(void); | | */ | |
| | | typedef Eina_Bool (*Ecore_Timeline_Cb)(void *data, double pos); | |
| /** | | | |
| * @} | | /** | |
| */ | | * @brief Add an animator to call @p func at every animaton tick during mai | |
| | | n | |
| /** | | * loop execution. | |
| * @defgroup Ecore_Event_Group Ecore Event functions | | * | |
| * | | * @param func The function to call when it ticks off | |
| * @{ | | * @param data The data to pass to the function | |
| */ | | * @return A handle to the new animator | |
| | | * | |
| EAPI Ecore_Event_Handler *ecore_event_handler_add(int type, Ecore_Event_ | | * This function adds a animator and returns its handle on success and NULL | |
| Handler_Cb func, const void *data); | | on | |
| EAPI void *ecore_event_handler_del(Ecore_Event_Handler *e | | * failure. The function @p func will be called every N seconds where N is | |
| vent_handler); | | the | |
| EAPI Ecore_Event *ecore_event_add(int type, void *ev, Ecore_End_ | | * @p frametime interval set by ecore_animator_frametime_set(). The functio | |
| Cb func_free, void *data); | | n | |
| EAPI void *ecore_event_del(Ecore_Event *event); | | * will be passed the @p data pointer as its parameter. | |
| EAPI void *ecore_event_handler_data_get(Ecore_Event_Handl | | * | |
| er *eh); | | * When the animator @p func is called, it must return a value of either 1 | |
| EAPI void *ecore_event_handler_data_set(Ecore_Event_Handl | | or | |
| er *eh, void *data); | | * 0. If it returns 1 (or ECORE_CALLBACK_RENEW), it will be called again at | |
| EAPI int ecore_event_type_new(void); | | * the next tick, or if it returns 0 (or ECORE_CALLBACK_CANCEL) it will be | |
| EAPI Ecore_Event_Filter *ecore_event_filter_add(Ecore_Data_Cb func_star | | * deleted automatically making any references/handles for it invalid. | |
| t, Ecore_Filter_Cb func_filter, Ecore_End_Cb func_end, const void *data); | | * | |
| EAPI void *ecore_event_filter_del(Ecore_Event_Filter *ef) | | * @note The default @p frametime value is 1/30th of a second. | |
| ; | | * | |
| EAPI int ecore_event_current_type_get(void); | | * @see ecore_animator_timeline_add() | |
| EAPI void *ecore_event_current_event_get(void); | | * @see ecore_animator_frametime_set() | |
| | | */ | |
| /** | | EAPI Ecore_Animator *ecore_animator_add(Ecore_Task_Cb func, | |
| * @} | | const void *data); | |
| */ | | /** | |
| | | * @brief Add a animator that runs for a limited time | |
| /** | | * | |
| * @defgroup Ecore_Exe_Group Process Spawning Functions | | * @param runtime The time to run in seconds | |
| * | | * @param func The function to call when it ticks off | |
| * @{ | | * @param data The data to pass to the function | |
| */ | | * @return A handle to the new animator | |
| | | * | |
| EAPI void ecore_exe_run_priority_set(int pri); | | * This function is just like ecore_animator_add() except the animator only | |
| EAPI int ecore_exe_run_priority_get(void); | | * runs for a limited time specified in seconds by @p runtime. Once the | |
| EAPI Ecore_Exe *ecore_exe_run(const char *exe_cmd, const void *data); | | * runtime the animator has elapsed (animator finished) it will automatical | |
| EAPI Ecore_Exe *ecore_exe_pipe_run(const char *exe_cmd, Ecore_Exe_Flags | | ly | |
| flags, const void *data); | | * be deleted. The callback function @p func can return ECORE_CALLBACK_RENE | |
| EAPI void ecore_exe_callback_pre_free_set(Ecore_Exe *exe, Ecore_E | | W | |
| xe_Cb func); | | * to keep the animator running or ECORE_CALLBACK_CANCEL ro stop it and hav | |
| EAPI Eina_Bool ecore_exe_send(Ecore_Exe *exe, const void *data, int si | | e | |
| ze); | | * it be deleted automatically at any time. | |
| EAPI void ecore_exe_close_stdin(Ecore_Exe *exe); | | * | |
| EAPI void ecore_exe_auto_limits_set(Ecore_Exe *exe, int start_byt | | * The @p func will ALSO be passed a position parameter that will be in val | |
| es, int end_bytes, int start_lines, int end_lines); | | ue | |
| EAPI Ecore_Exe_Event_Data *ecore_exe_event_data_get(Ecore_Exe *exe, Ecor | | * from 0.0 to 1.0 to indicate where along the timeline (0.0 start, 1.0 end | |
| e_Exe_Flags flags); | | ) | |
| EAPI void ecore_exe_event_data_free(Ecore_Exe_Event_Data *data); | | * the animator run is at. If the callback wishes not to have a linear | |
| EAPI void *ecore_exe_free(Ecore_Exe *exe); | | * transition it can "map" this value to one of several curves and mappings | |
| EAPI pid_t ecore_exe_pid_get(const Ecore_Exe *exe); | | * via ecore_animator_pos_map(). | |
| EAPI void ecore_exe_tag_set(Ecore_Exe *exe, const char *tag); | | * | |
| EAPI const char *ecore_exe_tag_get(const Ecore_Exe *exe); | | * @note The default @p frametime value is 1/30th of a second. | |
| EAPI const char *ecore_exe_cmd_get(const Ecore_Exe *exe); | | * | |
| EAPI void *ecore_exe_data_get(const Ecore_Exe *exe); | | * @see ecore_animator_add() | |
| EAPI Ecore_Exe_Flags ecore_exe_flags_get(const Ecore_Exe *exe); | | * @see ecore_animator_pos_map() | |
| EAPI void ecore_exe_pause(Ecore_Exe *exe); | | * @since 1.1.0 | |
| EAPI void ecore_exe_continue(Ecore_Exe *exe); | | */ | |
| EAPI void ecore_exe_interrupt(Ecore_Exe *exe); | | EAPI Ecore_Animator * | |
| EAPI void ecore_exe_quit(Ecore_Exe *exe); | | ecore_animator_timeline_add(double runtime, | |
| EAPI void ecore_exe_terminate(Ecore_Exe *exe); | | Ecore_Timeline_Cb func, | |
| EAPI void ecore_exe_kill(Ecore_Exe *exe); | | const void *data); | |
| EAPI void ecore_exe_signal(Ecore_Exe *exe, int num); | | /** | |
| EAPI void ecore_exe_hup(Ecore_Exe *exe); | | * @brief Delete the specified animator from the animator list. | |
| | | * | |
| /** | | * @param animator The animator to delete | |
| * @} | | * @return The data pointer set for the animator on add | |
| */ | | * | |
| | | * Delete the specified @p animator from the set of animators that are | |
| /** | | * executed during main loop execution. This function returns the data | |
| * @defgroup Ecore_Idle_Group Ecore Idle functions | | * parameter that was being passed to the callback on success, or NULL on | |
| * | | * failure. After this call returns the specified animator object @p animat | |
| * @{ | | or | |
| */ | | * is invalid and should not be used again. It will not get called again af | |
| | | ter | |
| EAPI Ecore_Idler *ecore_idler_add(Ecore_Task_Cb func, const void *data); | | * deletion. | |
| EAPI void *ecore_idler_del(Ecore_Idler *idler); | | */ | |
| | | EAPI void * | |
| EAPI Ecore_Idle_Enterer *ecore_idle_enterer_add(Ecore_Task_Cb func, cons | | ecore_animator_del(Ecore_Animator *animator); | |
| t void *data); | | /** | |
| EAPI Ecore_Idle_Enterer *ecore_idle_enterer_before_add(Ecore_Task_Cb fun | | * @brief Suspend the specified animator. | |
| c, const void *data); | | * | |
| EAPI void *ecore_idle_enterer_del(Ecore_Idle_Enterer *idle | | * @param animator The animator to delete | |
| _enterer); | | * | |
| | | * The specified @p animator will be temporarly removed from the set of | |
| EAPI Ecore_Idle_Exiter *ecore_idle_exiter_add(Ecore_Task_Cb func, const | | * animators that are executed during main loop. | |
| void *data); | | * | |
| EAPI void *ecore_idle_exiter_del(Ecore_Idle_Exiter *idle_ex | | * @warning Freezing an animator doesn't freeze accounting of how long that | |
| iter); | | * animator has been running. Therefore if the animator was created with | |
| | | * ecore_animator_timeline_add() the @p pos argument given to the callback | |
| /** | | * will increase as if the animator hadn't been frozen and the animator may | |
| * @} | | * have it's execution halted if @p runtime elapsed. | |
| */ | | */ | |
| | | EAPI void | |
| /** | | ecore_animator_freeze(Ecore_Animator *animator); | |
| * @defgroup Ecore_Main Loop_Group Ecore Main Loop functions | | /** | |
| * | | * @brief Restore execution of the specified animator. | |
| * @{ | | * | |
| */ | | * @param animator The animator to delete | |
| | | * | |
| EAPI void ecore_main_loop_iterate(void); | | * The specified @p animator will be put back in the set of animators that | |
| | | are | |
| EAPI void ecore_main_loop_select_func_set(Ecore_Select_Func | | * executed during main loop. | |
| tion func); | | */ | |
| EAPI Ecore_Select_Function ecore_main_loop_select_func_get(void); | | EAPI void | |
| | | ecore_animator_thaw(Ecore_Animator *animator); | |
| EAPI Eina_Bool ecore_main_loop_glib_integrate(void); | | /** | |
| EAPI void ecore_main_loop_glib_always_integrate_disable(voi | | * @brief Set the animator call interval in seconds. | |
| d); | | * | |
| | | * @param frametime The time in seconds in between animator ticks. | |
| EAPI void ecore_main_loop_begin(void); | | * | |
| EAPI void ecore_main_loop_quit(void); | | * This function sets the time interval (in seconds) between animator ticks | |
| EAPI Ecore_Fd_Handler *ecore_main_fd_handler_add(int fd, Ecore_Fd_Handle | | . | |
| r_Flags flags, Ecore_Fd_Cb func, const void *data, | | * At every tick the callback of every existing animator will be called. | |
| Ecore_Fd_Cb buf_func, c | | * | |
| onst void *buf_data); | | * @warning Too small a value may cause performance issues and too high a | |
| EAPI void ecore_main_fd_handler_prepare_callback_set(Ecore_ | | * value may cause your animation to seem "jerky". | |
| Fd_Handler *fd_handler, Ecore_Fd_Prep_Cb func, const void *data); | | * | |
| EAPI void *ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_ha | | * @note The default @p frametime value is 1/30th of a second. | |
| ndler); | | */ | |
| EAPI int ecore_main_fd_handler_fd_get(Ecore_Fd_Handler *fd | | EAPI void | |
| _handler); | | ecore_animator_frametime_set(double frametime); | |
| EAPI Eina_Bool ecore_main_fd_handler_active_get(Ecore_Fd_Handler | | /** | |
| *fd_handler, Ecore_Fd_Handler_Flags flags); | | * @brief Get the animator call interval in seconds. | |
| EAPI void ecore_main_fd_handler_active_set(Ecore_Fd_Handler | | * | |
| *fd_handler, Ecore_Fd_Handler_Flags flags); | | * @return The time in second in between animator ticks. | |
| | | * | |
| EAPI Ecore_Win32_Handler *ecore_main_win32_handler_add(void *h, Ecore_Wi | | * This function retrieves the time in seconds between animator ticks. | |
| n32_Handle_Cb func, const void *data); | | * | |
| EAPI void *ecore_main_win32_handler_del(Ecore_Win32_Handl | | * @see ecore_animator_frametime_set() | |
| er *win32_handler); | | */ | |
| | | EAPI double | |
| /** | | ecore_animator_frametime_get(void); | |
| * @} | | /** | |
| */ | | * @brief Maps an input position from 0.0 to 1.0 along a timeline to a | |
| | | * position in a different curve. | |
| /** | | * | |
| * @defgroup Ecore_Pipe_Group Pipe wrapper | | * @param pos The input position to map | |
| * | | * @param map The mapping to use | |
| * @{ | | * @param v1 A parameter use by the mapping (pass 0.0 if not used) | |
| */ | | * @param v2 A parameter use by the mapping (pass 0.0 if not used) | |
| | | * @return The mapped value | |
| EAPI Ecore_Pipe *ecore_pipe_add(Ecore_Pipe_Cb handler, const void *data | | * | |
| ); | | * Takes an input position (0.0 to 1.0) and maps to a new position (normall | |
| EAPI void *ecore_pipe_del(Ecore_Pipe *p); | | y | |
| EAPI Eina_Bool ecore_pipe_write(Ecore_Pipe *p, const void *buffer, un | | * between 0.0 and 1.0, but it may go above/below 0.0 or 1.0 to show that i | |
| signed int nbytes); | | t | |
| EAPI void ecore_pipe_write_close(Ecore_Pipe *p); | | * has "overshot" the mark) using some interpolation (mapping) algorithm. | |
| EAPI void ecore_pipe_read_close(Ecore_Pipe *p); | | * | |
| | | * This function useful to create non-linear animations. It offers a variet | |
| /** | | y | |
| * @} | | * of possible animaton curves to be used: | |
| */ | | * @li ECORE_POS_MAP_LINEAR - Linear, returns @p pos | |
| | | * @li ECORE_POS_MAP_ACCELERATE - Start slow then speed up | |
| /** | | * @li ECORE_POS_MAP_DECELERATE - Start fast then slow down | |
| * @defgroup Ecore_Thread_Group Ecore Thread functions | | * @li ECORE_POS_MAP_SINUSOIDAL - Start slow, speed up then slow down at en | |
| * | | d | |
| * @{ | | * @li ECORE_POS_MAP_ACCELERATE_FACTOR - Start slow then speed up, v1 being | |
| */ | | a | |
| | | * power factor, 0.0 being linear, 1.0 being ECORE_POS_MAP_ACCELERATE, 2.0 | |
| EAPI Ecore_Thread *ecore_thread_run(Ecore_Thread_Cb func_blocking, | | * being much more pronounced accelerate (squared), 3.0 being cubed, etc. | |
| Ecore_Thread_Cb func_end, | | * @li ECORE_POS_MAP_DECELERATE_FACTOR - Start fast then slow down, v1 bein | |
| Ecore_Thread_Cb func_cancel, | | g a | |
| const void *data); | | * power factor, 0.0 being linear, 1.0 being ECORE_POS_MAP_DECELERATE, 2.0 | |
| EAPI Ecore_Thread *ecore_thread_feedback_run(Ecore_Thread_Cb func_heavy, | | * being much more pronounced decelerate (squared), 3.0 being cubed, etc. | |
| Ecore_Thread_Notify_Cb func | | * @li ECORE_POS_MAP_SINUSOIDAL_FACTOR - Start slow, speed up then slow dow | |
| _notify, | | n | |
| Ecore_Thread_Cb func_end, | | * at end, v1 being a power factor, 0.0 being linear, 1.0 being | |
| Ecore_Thread_Cb func_cancel | | * ECORE_POS_MAP_SINUSOIDAL, 2.0 being much more pronounced sinusoidal | |
| , | | * (squared), 3.0 being cubed, etc. | |
| const void *data, | | * @li ECORE_POS_MAP_DIVISOR_INTERP - Start at gradient * v1, interpolated | |
| Eina_Bool try_no_queue); | | via | |
| EAPI Eina_Bool ecore_thread_cancel(Ecore_Thread *thread); | | * power of v2 curve | |
| EAPI Eina_Bool ecore_thread_check(Ecore_Thread *thread); | | * @li ECORE_POS_MAP_BOUNCE - Start at 0.0 then "drop" like a ball bouncing | |
| EAPI Eina_Bool ecore_thread_feedback(Ecore_Thread *thread, const voi | | to | |
| d *msg_data); | | * the ground at 1.0, and bounce v2 times, with decay factor of v1 | |
| EAPI int ecore_thread_active_get(void); | | * @li ECORE_POS_MAP_SPRING - Start at 0.0 then "wobble" like a spring rest | |
| EAPI int ecore_thread_pending_get(void); | | * position 1.0, and wobble v2 times, with decay factor of v1 | |
| EAPI int ecore_thread_pending_feedback_get(void); | | * @note When not listed v1 and v2 have no effect. | |
| EAPI int ecore_thread_pending_total_get(void); | | * | |
| EAPI int ecore_thread_max_get(void); | | * @image html ecore-pos-map.png | |
| EAPI void ecore_thread_max_set(int num); | | * @image latex ecore-pos-map.eps width=\textwidth | |
| EAPI void ecore_thread_max_reset(void); | | * | |
| EAPI int ecore_thread_available_get(void); | | * One way to use this would be: | |
| EAPI Eina_Bool ecore_thread_local_data_add(Ecore_Thread *thread, con | | * @code | |
| st char *key, void *value, Eina_Free_Cb cb, Eina_Bool direct); | | * double pos; // input position in a timeline from 0.0 to 1.0 | |
| EAPI void *ecore_thread_local_data_set(Ecore_Thread *thread, con | | * double out; // output position after mapping | |
| st char *key, void *value, Eina_Free_Cb cb); | | * int x1, y1, x2, y2; // x1 & y1 are start position, x2 & y2 are end posit | |
| EAPI void *ecore_thread_local_data_find(Ecore_Thread *thread, co | | ion | |
| nst char *key); | | * int x, y; // x & y are the calculated position | |
| EAPI Eina_Bool ecore_thread_local_data_del(Ecore_Thread *thread, con | | * | |
| st char *key); | | * out = ecore_animator_pos_map(pos, ECORE_POS_MAP_BOUNCE, 1.8, 7); | |
| | | * x = (x1 * out) + (x2 * (1.0 - out)); | |
| EAPI Eina_Bool ecore_thread_global_data_add(const char *key, void *v | | * y = (y1 * out) + (y2 * (1.0 - out)); | |
| alue, Eina_Free_Cb cb, Eina_Bool direct); | | * move_my_object_to(myobject, x, y); | |
| EAPI void *ecore_thread_global_data_set(const char *key, void *v | | * @endcode | |
| alue, Eina_Free_Cb cb); | | * This will make an animaton that bounces 7 each times diminishing by a | |
| EAPI void *ecore_thread_global_data_find(const char *key); | | * factor of 1.8. | |
| EAPI Eina_Bool ecore_thread_global_data_del(const char *key); | | * | |
| EAPI void *ecore_thread_global_data_wait(const char *key, double | | * @see _Ecore_Pos_Map | |
| seconds); | | * | |
| | | * @since 1.1.0 | |
| /** | | */ | |
| * @} | | EAPI double | |
| */ | | ecore_animator_pos_map(double pos, | |
| | | Ecore_Pos_Map map, | |
| /** | | double v1, | |
| * @defgroup Ecore_Time_Group Ecore Time functions | | double v2); | |
| * | | /** | |
| * @{ | | * @brief Set the source of animator ticks for the mainloop | |
| */ | | * | |
| | | * @param source The source of animator ticks to use | |
| EAPI double ecore_time_get(void); | | * | |
| EAPI double ecore_time_unix_get(void); | | * This sets the source of animator ticks. When an animator is active the | |
| EAPI double ecore_loop_time_get(void); | | * mainloop will "tick" over frame by frame calling all animators that are | |
| | | * registered until none are. The mainloop will tick at a given rate based | |
| EAPI Ecore_Timer *ecore_timer_add(double in, Ecore_Task_Cb func, const v | | * on the animator source. The default source is the system clock timer | |
| oid *data); | | * source - ECORE_ANIMATOR_SOURCE_TIMER. This source uses the system clock | |
| EAPI Ecore_Timer *ecore_timer_loop_add(double in, Ecore_Task_Cb func, co | | * to tick over every N seconds (specified by ecore_animator_frametime_set( | |
| nst void *data); | | ), | |
| EAPI void *ecore_timer_del(Ecore_Timer *timer); | | * with the default being 1/30th of a second unless set otherwise). You can | |
| EAPI void ecore_timer_interval_set(Ecore_Timer *timer, double in | | * set a custom tick source by setting the source to | |
| ); | | * ECORE_ANIMATOR_SOURCE_CUSTOM and then drive it yourself based on some in | |
| EAPI double ecore_timer_interval_get(Ecore_Timer *timer); | | put | |
| EAPI void ecore_timer_freeze(Ecore_Timer *timer); | | * tick source (like another application via ipc, some vertical blanking | |
| EAPI void ecore_timer_thaw(Ecore_Timer *timer); | | * interrupt interrupt etc.) using | |
| EAPI void ecore_timer_delay(Ecore_Timer *timer, double add); | | * ecore_animator_custom_source_tick_begin_callback_set() and | |
| EAPI double ecore_timer_pending_get(Ecore_Timer *timer); | | * ecore_animator_custom_source_tick_end_callback_set() to set the function | |
| EAPI double ecore_timer_precision_get(void); | | s | |
| EAPI void ecore_timer_precision_set(double precision); | | * that will be called to start and stop the ticking source, which when it | |
| | | * gets a "tick" should call ecore_animator_custom_tick() to make the "tick | |
| /** | | " over 1 | |
| * @} | | * frame. | |
| */ | | */ | |
| | | EAPI void | |
| /** | | ecore_animator_source_set(Ecore_Animator_Source source); | |
| * @defgroup Ecore_Animator_Group Ecore Animator functions | | /** | |
| * | | * @brief Get the animator source currently set. | |
| * @{ | | * | |
| */ | | * @return The current animator source | |
| | | * | |
| EAPI Ecore_Animator *ecore_animator_add(Ecore_Task_Cb func, const void * | | * This gets the current animator source. | |
| data); | | * | |
| EAPI void *ecore_animator_del(Ecore_Animator *animator); | | * @see ecore_animator_source_set() | |
| EAPI void ecore_animator_freeze(Ecore_Animator *animator); | | */ | |
| EAPI void ecore_animator_thaw(Ecore_Animator *animator); | | EAPI Ecore_Animator_Source | |
| EAPI void ecore_animator_frametime_set(double frametime); | | ecore_animator_source_get(void); | |
| EAPI double ecore_animator_frametime_get(void); | | /** | |
| | | * @brief Set the function that begins a custom animator tick source | |
| /** | | * | |
| * @} | | * @param func The function to call when ticking is to begin | |
| */ | | * @param data The data passed to the tick begin function as its parameter | |
| | | * | |
| /** | | * The Ecore Animator infrastructure handles tracking if animators are need | |
| * @defgroup Ecore_Poller_Group Ecore Poll functions | | ed | |
| * | | * or not and which ones need to be called and when, but when the tick sour | |
| * @{ | | ce | |
| */ | | * is custom, you have to provide a tick source by calling | |
| | | * ecore_animator_custom_tick() to indicate a frame tick happened. In order | |
| EAPI void ecore_poller_poll_interval_set(Ecore_Poller_Type type | | * to allow the source of ticks to be dynamically enabled or disabled as | |
| , double poll_time); | | * needed, the @p func when set is called to enable the tick source to | |
| EAPI double ecore_poller_poll_interval_get(Ecore_Poller_Type type | | * produce tick events that call ecore_animator_custom_tick(). If @p func | |
| ); | | * is NULL then no function is called to begin custom ticking. | |
| EAPI Eina_Bool ecore_poller_poller_interval_set(Ecore_Poller *poller | | * | |
| , int interval); | | * @see ecore_animator_source_set() | |
| EAPI int ecore_poller_poller_interval_get(Ecore_Poller *poller | | * @see ecore_animator_custom_source_tick_end_callback_set() | |
| ); | | * @see ecore_animator_custom_tick() | |
| EAPI Ecore_Poller *ecore_poller_add(Ecore_Poller_Type type, int interval | | */ | |
| , Ecore_Task_Cb func, const void *data); | | EAPI void | |
| EAPI void *ecore_poller_del(Ecore_Poller *poller); | | ecore_animator_custom_source_tick_begin_callback_set(Ecore_Cb func, | |
| | | const void *data); | |
| /** | | /** | |
| * @} | | * @brief Set the function that ends a custom animator tick source | |
| */ | | * | |
| | | * @param func The function to call when ticking is to end | |
| /** | | * @param data The data passed to the tick end function as its parameter | |
| * @defgroup Ecore_Job_Group Ecore Job functions | | * | |
| * | | * This function is a matching pair to the function set by | |
| * @{ | | * ecore_animator_custom_source_tick_begin_callback_set() and is called | |
| */ | | * when ticking is to stop. If @p func is NULL then no function will be | |
| | | * called to stop ticking. For more information please see | |
| EAPI Ecore_Job *ecore_job_add(Ecore_Cb func, const void *data); | | * ecore_animator_custom_source_tick_begin_callback_set(). | |
| EAPI void *ecore_job_del(Ecore_Job *job); | | * | |
| | | * @see ecore_animator_source_set() | |
| /** | | * @see ecore_animator_custom_source_tick_begin_callback_set() | |
| * @} | | * @see ecore_animator_custom_tick() | |
| */ | | */ | |
| | | EAPI void | |
| /** | | ecore_animator_custom_source_tick_end_callback_set(Ecore_Cb func, | |
| * @} | | const void *data); | |
| */ | | /** | |
| | | * @brief Trigger a custom animator tick | |
| | | * | |
| | | * When animator source is set to ECORE_ANIMATOR_SOURCE_CUSTOM, then callin | |
| | | g | |
| | | * this function triggers a run of all animators currently registered with | |
| | | * Ecore as this indicates a "frame tick" happened. This will do nothing if | |
| | | * the animator source(set by ecore_animator_source_set()) is not set to | |
| | | * ECORE_ANIMATOR_SOURCE_CUSTOM. | |
| | | * | |
| | | * @see ecore_animator_source_set() | |
| | | * @see ecore_animator_custom_source_tick_begin_callback_set | |
| | | * @see ecore_animator_custom_source_tick_end_callback_set()() | |
| | | */ | |
| | | EAPI void | |
| | | ecore_animator_custom_tick(void); | |
| | | | |
| | | /** | |
| | | * @} | |
| | | */ | |
| | | | |
| | | /** | |
| | | * @defgroup Ecore_Time_Group Ecore Time functions | |
| | | * | |
| | | * Functions that deal with time. These functions include those | |
| | | * that simply retrieve it in a given format, and those that create | |
| | | * events based on it. | |
| | | * | |
| | | * The timer allows callbacks to be called at specific intervals. | |
| | | * | |
| | | * Examples with functions that deal with time: | |
| | | * @li @ref ecore_time_functions_example_c | |
| | | * @li @ref ecore_timer_example_c | |
| | | * | |
| | | * @ingroup Ecore_Main_Loop_Group | |
| | | * | |
| | | * @{ | |
| | | */ | |
| | | | |
| | | typedef struct _Ecore_Timer Ecore_Timer; /**< A handle for timers */ | |
| | | | |
| | | EAPI double | |
| | | ecore_time_get(void); | |
| | | EAPI double | |
| | | ecore_time_unix_get(void); | |
| | | EAPI double | |
| | | ecore_loop_time_get(void); | |
| | | | |
| | | EAPI Ecore_Timer * | |
| | | ecore_timer_add(double in, | |
| | | Ecore_Task_Cb func, | |
| | | const void *data); | |
| | | EAPI Ecore_Timer * | |
| | | ecore_timer_loop_add(double in, | |
| | | Ecore_Task_Cb func, | |
| | | const void *data); | |
| | | EAPI void * | |
| | | ecore_timer_del(Ecore_Timer *timer); | |
| | | EAPI void | |
| | | ecore_timer_interval_set(Ecore_Timer *timer, | |
| | | double in); | |
| | | EAPI double | |
| | | ecore_timer_interval_get(Ecore_Timer *timer); | |
| | | EAPI void | |
| | | ecore_timer_freeze(Ecore_Timer *timer); | |
| | | EAPI void | |
| | | ecore_timer_thaw(Ecore_Timer *timer); | |
| | | EAPI void | |
| | | ecore_timer_delay(Ecore_Timer *timer, | |
| | | double add); | |
| | | EAPI double | |
| | | ecore_timer_pending_get(Ecore_Timer *timer); | |
| | | EAPI double | |
| | | ecore_timer_precision_get(void); | |
| | | EAPI void | |
| | | ecore_timer_precision_set(double precision); | |
| | | EAPI char * | |
| | | ecore_timer_dump(void); | |
| | | | |
| | | /** | |
| | | * @} | |
| | | */ | |
| | | | |
| | | /** | |
| | | * @defgroup Ecore_Idle_Group Ecore Idle functions | |
| | | * | |
| | | * Callbacks that are called when the program enters or exits an | |
| | | * idle state. | |
| | | * | |
| | | * The ecore main loop enters an idle state when it is waiting for | |
| | | * timers to time out, data to come in on a file descriptor or any | |
| | | * other event to occur. You can set callbacks to be called when | |
| | | * the main loop enters an idle state, during an idle state or just | |
| | | * after the program wakes up. | |
| | | * | |
| | | * Enterer callbacks are good for updating your program's state, if | |
| | | * it has a state engine. Once all of the enterer handlers are | |
| | | * called, the program will enter a "sleeping" state. | |
| | | * | |
| | | * Idler callbacks are called when the main loop has called all | |
| | | * enterer handlers. They are useful for interfaces that require | |
| | | * polling and timers would be too slow to use. | |
| | | * | |
| | | * If no idler callbacks are specified, then the process literally | |
| | | * goes to sleep. Otherwise, the idler callbacks are called | |
| | | * continuously while the loop is "idle", using as much CPU as is | |
| | | * available to the process. | |
| | | * | |
| | | * Exiter callbacks are called when the main loop wakes up from an | |
| | | * idle state. | |
| | | * | |
| | | * @note Idle state doesn't mean that the @b program is idle, but | |
| | | * that the <b>main loop</b> is idle. It doesn't have any timers, | |
| | | * events, fd handlers or anything else to process (which in most | |
| | | * <em>event driven</em> programs also means that the @b program is | |
| | | * idle too, but it's not a rule). The program itself may be doing | |
| | | * a lot of processing in the idler, or in another thread, for | |
| | | * example. | |
| | | * | |
| | | * Example with functions that deal with idle state: | |
| | | * | |
| | | * @li @ref ecore_idler_example_c | |
| | | * | |
| | | * @ingroup Ecore_Main_Loop_Group | |
| | | * | |
| | | * @{ | |
| | | */ | |
| | | | |
| | | typedef struct _Ecore_Idler Ecore_Idler; /**< A handle for idlers */ | |
| | | typedef struct _Ecore_Idle_Enterer Ecore_Idle_Enterer; /**< A handle for id | |
| | | le enterers */ | |
| | | typedef struct _Ecore_Idle_Exiter Ecore_Idle_Exiter; /**< A handle for idl | |
| | | e exiters */ | |
| | | | |
| | | /** | |
| | | * Add an idler handler. | |
| | | * @param func The function to call when idling. | |
| | | * @param data The data to be passed to this @p func call. | |
| | | * @return A idler handle if successfully added. NULL otherwise. | |
| | | * | |
| | | * Add an idler handle to the event loop, returning a handle on | |
| | | * success and NULL otherwise. The function @p func will be called | |
| | | * repeatedly while no other events are ready to be processed, as | |
| | | * long as it returns 1 (or ECORE_CALLBACK_RENEW). A return of 0 | |
| | | * (or ECORE_CALLBACK_CANCEL) deletes the idler. | |
| | | * | |
| | | * Idlers are useful for progressively prossessing data without blocking. | |
| | | */ | |
| | | EAPI Ecore_Idler * | |
| | | ecore_idler_add(Ecore_Task_Cb func, | |
| | | const void *data); | |
| | | | |
| | | /** | |
| | | * Delete an idler callback from the list to be executed. | |
| | | * @param idler The handle of the idler callback to delete | |
| | | * @return The data pointer passed to the idler callback on success. NULL | |
| | | * otherwise. | |
| | | */ | |
| | | EAPI void * | |
| | | ecore_idler_del(Ecore_Idler *idler); | |
| | | | |
| | | EAPI Ecore_Idle_Enterer * | |
| | | ecore_idle_enterer_add(Ecore_Task_Cb func, | |
| | | const void *data); | |
| | | EAPI Ecore_Idle_Enterer * | |
| | | ecore_idle_enterer_before_add(Ecore_Task_Cb func, | |
| | | const void *data); | |
| | | EAPI void * | |
| | | ecore_idle_enterer_del(Ecore_Idle_Enterer *idle_enterer); | |
| | | | |
| | | EAPI Ecore_Idle_Exiter * | |
| | | ecore_idle_exiter_add(Ecore_Task_Cb func, | |
| | | const void *data); | |
| | | EAPI void * | |
| | | ecore_idle_exiter_del(Ecore_Idle_Exiter *idle_exiter); | |
| | | | |
| | | /** | |
| | | * @} | |
| | | */ | |
| | | | |
| | | /** | |
| | | * @defgroup Ecore_Thread_Group Ecore Thread functions | |
| | | * | |
| | | * Facilities to run heavy tasks in different threads to avoid blocking | |
| | | * the main loop. | |
| | | * | |
| | | * The EFL is, for the most part, not thread safe. This means that if you | |
| | | * have some task running in another thread and you have, for example, an | |
| | | * Evas object to show the status progress of this task, you cannot update | |
| | | * the object from within the thread. This can only be done from the main | |
| | | * thread, the one running the main loop. This problem can be solved | |
| | | * by running a thread that sends messages to the main one using an | |
| | | * @ref Ecore_Pipe_Group "Ecore_Pipe", but when you need to handle other | |
| | | * things like cancelling the thread, your code grows in coplexity and gets | |
| | | * much harder to maintain. | |
| | | * | |
| | | * Ecore Thread is here to solve that problem. It is @b not a simple wrappe | |
| | | r | |
| | | * around standard POSIX threads (or the equivalent in other systems) and | |
| | | * it's not meant to be used to run parallel tasks throughout the entire | |
| | | * duration of the program, especially when these tasks are performance | |
| | | * critical, as Ecore manages these tasks using a pool of threads based on | |
| | | * system configuration. | |
| | | * | |
| | | * What Ecore Thread does, is make it a lot easier to dispatch a worker | |
| | | * function to perform some heavy task and then get the result once it | |
| | | * completes, without blocking the application's UI. In addition, cancellin | |
| | | g | |
| | | * and rescheduling comes practically for free and the developer needs not | |
| | | * worry about how many threads are launched, since Ecore will schedule | |
| | | * them according to the number of processors the system has and maximum | |
| | | * amount of concurrent threads set for the application. | |
| | | * | |
| | | * At the system level, Ecore will start a new thread on an as-needed basis | |
| | | * until the maximum set is reached. When no more threads can be launched, | |
| | | * new worker functions will be queued in a waiting list until a thread | |
| | | * becomes available. This way, system threads will be shared throughout | |
| | | * different worker functions, but running only one at a time. At the same | |
| | | * time, a worker function that is rescheduled may be run on a different | |
| | | * thread the next time. | |
| | | * | |
| | | * The ::Ecore_Thread handler has two meanings, depending on what context | |
| | | * it is on. The one returned when starting a worker with any of the | |
| | | * functions ecore_thread_run() or ecore_thread_feedback_run() is an | |
| | | * identifier of that specific instance of the function and can be used fro | |
| | | m | |
| | | * the main loop with the ecore_thread_cancel() and ecore_thread_check() | |
| | | * functions. This handler must not be shared with the worker function | |
| | | * function running in the thread. This same handler will be the one receiv | |
| | | ed | |
| | | * on the @c end, @c cancel and @c feedback callbacks. | |
| | | * | |
| | | * The worker function, that's the one running in the thread, also receives | |
| | | * an ::Ecore_Thread handler that can be used with ecore_thread_cancel() an | |
| | | d | |
| | | * ecore_thread_check(), sharing the flag with the main loop. But this | |
| | | * handler is also associated with the thread where the function is running | |
| | | . | |
| | | * This has strong implications when working with thread local data. | |
| | | * | |
| | | * There are two kinds of worker threads Ecore handles: simple, or short, | |
| | | * workers and feedback workers. | |
| | | * | |
| | | * The first kind is for simple functions that perform a | |
| | | * usually small but time consuming task. Ecore will run this function in | |
| | | * a thread as soon as one becomes available and notify the calling user of | |
| | | * its completion once the task is done. | |
| | | * | |
| | | * The following image shows the flow of a program running four tasks on | |
| | | * a pool of two threads. | |
| | | * | |
| | | * @image html ecore_thread.png | |
| | | * @image rtf ecore_thread.png | |
| | | * @image latex ecore_thread.eps width=\textwidth | |
| | | * | |
| | | * For larger tasks that may require continuous communication with the main | |
| | | * program, the feedback workers provide the same functionality plus a way | |
| | | * for the function running in the thread to send messages to the main | |
| | | * thread. | |
| | | * | |
| | | * The next diagram omits some details shown in the previous one regarding | |
| | | * how threads are spawned and tasks are queued, but illustrates how feedba | |
| | | ck | |
| | | * jobs communicate with the main loop and the special case of threads | |
| | | * running out of pool. | |
| | | * | |
| | | * @image html ecore_thread_feedback.png | |
| | | * @image rtf ecore_thread_feedback.png | |
| | | * @image latex ecore_thread_feedback.eps width=\textwidth | |
| | | * | |
| | | * See an overview example in @ref ecore_thread_example_c. | |
| | | * | |
| | | * @ingroup Ecore_Main_Loop_Group | |
| | | * | |
| | | * @{ | |
| | | */ | |
| | | | |
| | | typedef struct _Ecore_Thread Ecore_Thread; /**< A handle for threaded jobs | |
| | | */ | |
| | | | |
| | | /** | |
| | | * @typedef Ecore_Thread_Cb Ecore_Thread_Cb | |
| | | * A callback used by Ecore_Thread helper. | |
| | | */ | |
| | | typedef void (*Ecore_Thread_Cb)(void *data, Ecore_Thread *thread); | |
| | | /** | |
| | | * @typedef Ecore_Thread_Notify_Cb Ecore_Thread_Notify_Cb | |
| | | * A callback used by the main loop to receive data sent by an | |
| | | * @ref Ecore_Thread_Group. | |
| | | */ | |
| | | typedef void (*Ecore_Thread_Notify_Cb)(void *data, Ecore_Thread *thread, vo | |
| | | id *msg_data); | |
| | | | |
| | | /** | |
| | | * Schedule a task to run in a parallel thread to avoid locking the main lo | |
| | | op | |
| | | * | |
| | | * @param func_blocking The function that should run in another thread. | |
| | | * @param func_end Function to call from main loop when @p func_blocking | |
| | | * completes its task successfully (may be NULL) | |
| | | * @param func_cancel Function to call from main loop if the thread running | |
| | | * @p func_blocking is cancelled or fails to start (may be NULL) | |
| | | * @param data User context data to pass to all callbacks. | |
| | | * @return A new thread handler, or NULL on failure | |
| | | * | |
| | | * This function will try to create a new thread to run @p func_blocking in | |
| | | , | |
| | | * or if the maximum number of concurrent threads has been reached, will | |
| | | * add it to the pending list, where it will wait until a thread becomes | |
| | | * available. The return value will be an ::Ecore_Thread handle that can | |
| | | * be used to cancel the thread before its completion. | |
| | | * | |
| | | * @note This function should always return immediately, but in the rare | |
| | | * case that Ecore is built with no thread support, @p func_blocking will | |
| | | * be called here, actually blocking the main loop. | |
| | | * | |
| | | * Once a thread becomes available, @p func_blocking will be run in it unti | |
| | | l | |
| | | * it finishes, then @p func_end is called from the thread containing the | |
| | | * main loop to inform the user of its completion. While in @p func_blockin | |
| | | g, | |
| | | * no functions from the EFL can be used, except for those from Eina that a | |
| | | re | |
| | | * marked to be thread-safe. Even for the latter, caution needs to be taken | |
| | | * if the data is shared across several threads. | |
| | | * | |
| | | * @p func_end will be called from the main thread when @p func_blocking en | |
| | | ds, | |
| | | * so here it's safe to use anything from the EFL freely. | |
| | | * | |
| | | * The thread can also be cancelled before its completion calling | |
| | | * ecore_thread_cancel(), either from the main thread or @p func_blocking. | |
| | | * In this case, @p func_cancel will be called, also from the main thread | |
| | | * to inform of this happening. If the thread could not be created, this | |
| | | * function will be called and it's @c thread parameter will be NULL. It's | |
| | | * also safe to call any EFL function here, as it will be running in the | |
| | | * main thread. | |
| | | * | |
| | | * Inside @p func_blocking, it's possible to call ecore_thread_reschedule() | |
| | | * to tell Ecore that this function should be called again. | |
| | | * | |
| | | * Be aware that no assumptions can be made about the order in which the | |
| | | * @p func_end callbacks for each task will be called. Once the function is | |
| | | * running in a different thread, it's the OS that will handle its running | |
| | | * schedule, and different functions may take longer to finish than others. | |
| | | * Also remember that just starting several tasks together doesn't mean the | |
| | | y | |
| | | * will be running at the same time. Ecore will schedule them based on the | |
| | | * number of threads available for the particular system it's running in, | |
| | | * so some of the jobs started may be waiting until another one finishes | |
| | | * before it can execute its own @p func_blocking. | |
| | | * | |
| | | * @see ecore_thread_feedback_run() | |
| | | * @see ecore_thread_cancel() | |
| | | * @see ecore_thread_reschedule() | |
| | | * @see ecore_thread_max_set() | |
| | | */ | |
| | | EAPI Ecore_Thread * | |
| | | ecore_thread_run(Ecore_Thread_Cb func_blocking, | |
| | | Ecore_Thread_Cb func_end, | |
| | | Ecore_Thread_Cb func_cancel, | |
| | | const void *data); | |
| | | /** | |
| | | * Launch a thread to run a task than can talk back to the main thread | |
| | | * | |
| | | * @param func_heavy The function that should run in another thread. | |
| | | * @param func_notify Function that receives the data sent from the thread | |
| | | * @param func_end Function to call from main loop when @p func_heavy | |
| | | * completes its task successfully | |
| | | * @param func_cancel Function to call from main loop if the thread running | |
| | | * @p func_heavy is cancelled or fails to start | |
| | | * @param data User context data to pass to all callback. | |
| | | * @param try_no_queue If you want to run outside of the thread pool. | |
| | | * @return A new thread handler, or NULL on failure | |
| | | * | |
| | | * See ecore_thread_run() for a general description of this function. | |
| | | * | |
| | | * The difference with the above is that ecore_thread_run() is meant for | |
| | | * tasks that don't need to communicate anything until they finish, while | |
| | | * this function is provided with a new callback, @p func_notify, that will | |
| | | * be called from the main thread for every message sent from @p func_heavy | |
| | | * with ecore_thread_feedback(). | |
| | | * | |
| | | * Like with ecore_thread_run(), a new thread will be launched to run | |
| | | * @p func_heavy unless the maximum number of simultaneous threadas has bee | |
| | | n | |
| | | * reached, in which case the function will be scheduled to run whenever a | |
| | | * running task ends and a thread becomes free. But if @p try_no_queue is | |
| | | * set, Ecore will first try to launch a thread outside of the pool to run | |
| | | * the task. If it fails, it will revert to the normal behaviour of using a | |
| | | * thread from the pool as if @p try_no_queue had not been set. | |
| | | * | |
| | | * Keep in mind that Ecore handles the thread pool based on the number of | |
| | | * CPUs available, but running a thread outside of the pool doesn't count f | |
| | | or | |
| | | * this, so having too many of them may have drastic effects over the | |
| | | * program's performance. | |
| | | * | |
| | | * @see ecore_thread_feedback() | |
| | | * @see ecore_thread_run() | |
| | | * @see ecore_thread_cancel() | |
| | | * @see ecore_thread_reschedule() | |
| | | * @see ecore_thread_max_set() | |
| | | */ | |
| | | EAPI Ecore_Thread * | |
| | | ecore_thread_feedback_run(Ecore_Thread_Cb func_heavy, | |
| | | Ecore_Thread_Notify_Cb func_notify, | |
| | | Ecore_Thread_Cb func_end, | |
| | | Ecore_Thread_Cb func_cancel, | |
| | | const void *data, | |
| | | Eina_Bool try_no_queue); | |
| | | /** | |
| | | * Cancel a running thread. | |
| | | * | |
| | | * @param thread The thread to cancel. | |
| | | * @return Will return EINA_TRUE if the thread has been cancelled, | |
| | | * EINA_FALSE if it is pending. | |
| | | * | |
| | | * This function can be called both in the main loop or in the running thre | |
| | | ad. | |
| | | * | |
| | | * This function cancels a running thread. If @p thread can be immediately | |
| | | * cancelled (it's still pending execution after creation or rescheduling), | |
| | | * then the @c cancel callback will be called, @p thread will be freed and | |
| | | * the function will return EINA_TRUE. | |
| | | * | |
| | | * If the thread is already running, then this function returns EINA_FALSE | |
| | | * after marking the @p thread as pending cancellation. For the thread to | |
| | | * actually be terminated, it needs to return from the user function back | |
| | | * into Ecore control. This can happen in several ways: | |
| | | * @li The function ends and returns normally. If it hadn't been cancelled, | |
| | | * @c func_end would be called here, but instead @c func_cancel will happen | |
| | | . | |
| | | * @li The function returns after requesting to be rescheduled with | |
| | | * ecore_thread_reschedule(). | |
| | | * @li The function is prepared to leave early by checking if | |
| | | * ecore_thread_check() returns EINA_TRUE. | |
| | | * | |
| | | * The user function can cancel itself by calling ecore_thread_cancel(), bu | |
| | | t | |
| | | * it should always use the ::Ecore_Thread handle passed to it and never | |
| | | * share it with the main loop thread by means of shared user data or any | |
| | | * other way. | |
| | | * | |
| | | * @p thread will be freed and should not be used again if this function | |
| | | * returns EINA_TRUE or after the @c func_cancel callback returns. | |
| | | * | |
| | | * @see ecore_thread_check() | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_thread_cancel(Ecore_Thread *thread); | |
| | | /** | |
| | | * Checks if a thread is pending cancellation | |
| | | * | |
| | | * @param thread The thread to test. | |
| | | * @return EINA_TRUE if the thread is pending cancellation, | |
| | | * EINA_FALSE if it is not. | |
| | | * | |
| | | * This function can be called both in the main loop or in the running thre | |
| | | ad. | |
| | | * | |
| | | * When ecore_thread_cancel() is called on an already running task, the | |
| | | * thread is marked as pending cancellation. This function returns EINA_TRU | |
| | | E | |
| | | * if this mark is set for the given @p thread and can be used from the | |
| | | * main loop thread to check if a still active thread has been cancelled, | |
| | | * or from the user function running in the thread to check if it should | |
| | | * stop doing what it's doing and return early, effectively cancelling the | |
| | | * task. | |
| | | * | |
| | | * @see ecore_thread_cancel() | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_thread_check(Ecore_Thread *thread); | |
| | | /** | |
| | | * Sends data from the worker thread to the main loop | |
| | | * | |
| | | * @param thread The current ::Ecore_Thread context to send data from | |
| | | * @param msg_data Data to be transmitted to the main loop | |
| | | * @return EINA_TRUE if @p msg_data was successfully sent to main loop, | |
| | | * EINA_FALSE if anything goes wrong. | |
| | | * | |
| | | * You should use this function only in the @c func_heavy call. | |
| | | * | |
| | | * Only the address to @p msg_data will be sent and once this function | |
| | | * returns EINA_TRUE, the job running in the thread should never touch the | |
| | | * contents of it again. The data sent should be malloc()'ed or something | |
| | | * similar, as long as it's not memory local to the thread that risks being | |
| | | * overwritten or deleted once it goes out of scope or the thread finishes. | |
| | | * | |
| | | * Care must be taken that @p msg_data is properly freed in the @c func_not | |
| | | ify | |
| | | * callback set when creating the thread. | |
| | | * | |
| | | * @see ecore_thread_feedback_run() | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_thread_feedback(Ecore_Thread *thread, | |
| | | const void *msg_data); | |
| | | /** | |
| | | * Asks for the function in the thread to be called again at a later time | |
| | | * | |
| | | * @param thread The current ::Ecore_Thread context to rescheduled | |
| | | * @return EINA_TRUE if the task was successfully rescheduled, | |
| | | * EINA_FALSE if anything goes wrong. | |
| | | * | |
| | | * This function should be called only from the same function represented | |
| | | * by @pthread. | |
| | | * | |
| | | * Calling this function will mark the thread for a reschedule, so as soon | |
| | | * as it returns, it will be added to the end of the list of pending tasks. | |
| | | * If no other tasks are waiting or there are sufficient threads available, | |
| | | * the rescheduled task will be launched again immediately. | |
| | | * | |
| | | * This should never return EINA_FALSE, unless it was called from the wrong | |
| | | * thread or with the wrong arguments. | |
| | | * | |
| | | * The @c func_end callback set when the thread is created will not be | |
| | | * called until the function in the thread returns without being reschedule | |
| | | d. | |
| | | * Similarly, if the @p thread is cancelled, the reschedule will not take | |
| | | * effect. | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_thread_reschedule(Ecore_Thread *thread); | |
| | | /** | |
| | | * Gets the number of active threads running jobs | |
| | | * | |
| | | * @return Number of active threads running jobs | |
| | | * | |
| | | * This returns the number of threads currently running jobs of any type | |
| | | * through the Ecore_Thread API. | |
| | | * | |
| | | * @note Jobs started through the ecore_thread_feedback_run() function with | |
| | | * the @c try_no_queue parameter set to EINA_TRUE will not be accounted for | |
| | | * in the return of this function unless the thread creation fails and it | |
| | | * falls back to using one from the pool. | |
| | | */ | |
| | | EAPI int | |
| | | ecore_thread_active_get(void); | |
| | | /** | |
| | | * Gets the number of short jobs waiting for a thread to run | |
| | | * | |
| | | * @return Number of pending threads running "short" jobs | |
| | | * | |
| | | * This returns the number of tasks started with ecore_thread_run() that ar | |
| | | e | |
| | | * pending, waiting for a thread to become available to run them. | |
| | | */ | |
| | | EAPI int | |
| | | ecore_thread_pending_get(void); | |
| | | /** | |
| | | * Gets the number of feedback jobs waiting for a thread to run | |
| | | * | |
| | | * @return Number of pending threads running "feedback" jobs | |
| | | * | |
| | | * This returns the number of tasks started with ecore_thread_feedback_run( | |
| | | ) | |
| | | * that are pending, waiting for a thread to become available to run them. | |
| | | */ | |
| | | EAPI int | |
| | | ecore_thread_pending_feedback_get(void); | |
| | | /** | |
| | | * Gets the total number of pending jobs | |
| | | * | |
| | | * @return Number of pending threads running jobs | |
| | | * | |
| | | * Same as the sum of ecore_thread_pending_get() and | |
| | | * ecore_thread_pending_feedback_get(). | |
| | | */ | |
| | | EAPI int | |
| | | ecore_thread_pending_total_get(void); | |
| | | /** | |
| | | * Gets the maximum number of threads that can run simultaneously | |
| | | * | |
| | | * @return Max possible number of Ecore_Thread's running concurrently | |
| | | * | |
| | | * This returns the maximum number of Ecore_Thread's that may be running at | |
| | | * the same time. If this number is reached, new jobs started by either | |
| | | * ecore_thread_run() or ecore_thread_feedback_run() will be added to the | |
| | | * respective pending queue until one of the running threads finishes its | |
| | | * task and becomes available to run a new one. | |
| | | * | |
| | | * By default, this will be the number of available CPUs for the | |
| | | * running program (as returned by eina_cpu_count()), or 1 if this value | |
| | | * could not be fetched. | |
| | | * | |
| | | * @see ecore_thread_max_set() | |
| | | * @see ecore_thread_max_reset() | |
| | | */ | |
| | | EAPI int | |
| | | ecore_thread_max_get(void); | |
| | | /** | |
| | | * Sets the maximum number of threads allowed to run simultaneously | |
| | | * | |
| | | * @param num The new maximum | |
| | | * | |
| | | * This sets a new value for the maximum number of concurrently running | |
| | | * Ecore_Thread's. It @b must an integer between 1 and (2 * @c x), where @c | |
| | | x | |
| | | * is the number for CPUs available. | |
| | | * | |
| | | * @see ecore_thread_max_get() | |
| | | * @see ecore_thread_max_reset() | |
| | | */ | |
| | | EAPI void | |
| | | ecore_thread_max_set(int num); | |
| | | /** | |
| | | * Resets the maximum number of concurrently running threads to the default | |
| | | * | |
| | | * This resets the value returned by ecore_thread_max_get() back to its | |
| | | * default. | |
| | | * | |
| | | * @see ecore_thread_max_get() | |
| | | * @see ecore_thread_max_set() | |
| | | */ | |
| | | EAPI void | |
| | | ecore_thread_max_reset(void); | |
| | | /** | |
| | | * Gets the number of threads available for running tasks | |
| | | * | |
| | | * @return The number of available threads | |
| | | * | |
| | | * Same as doing ecore_thread_max_get() - ecore_thread_active_get(). | |
| | | * | |
| | | * This function may return a negative number only in the case the user | |
| | | * changed the maximum number of running threads while other tasks are | |
| | | * running. | |
| | | */ | |
| | | EAPI int | |
| | | ecore_thread_available_get(void); | |
| | | /** | |
| | | * Adds some data to a hash local to the thread | |
| | | * | |
| | | * @param thread The thread context the data belongs to | |
| | | * @param key The name under which the data will be stored | |
| | | * @param value The data to add | |
| | | * @param cb Function to free the data when removed from the hash | |
| | | * @param direct If true, this will not copy the key string (like | |
| | | * eina_hash_direct_add()) | |
| | | * @return EINA_TRUE on success, EINA_FALSE on failure | |
| | | * | |
| | | * Ecore Thread has a mechanism to share data across several worker functio | |
| | | ns | |
| | | * that run on the same system thread. That is, the data is stored per | |
| | | * thread and for a worker function to have access to it, it must be run | |
| | | * by the same thread that stored the data. | |
| | | * | |
| | | * When there are no more workers pending, the thread will be destroyed | |
| | | * along with the internal hash and any data left in it will be freed with | |
| | | * the @p cb function given. | |
| | | * | |
| | | * This set of functions is useful to share things around several instances | |
| | | * of a function when that thing is costly to create and can be reused, but | |
| | | * may only be used by one function at a time. | |
| | | * | |
| | | * For example, if you have a program doing requisitions to a database, | |
| | | * these requisitions can be done in threads so that waiting for the | |
| | | * database to respond doesn't block the UI. Each of these threads will | |
| | | * run a function, and each function will be dependent on a connection to | |
| | | * the database, which may not be able to handle more than one request at | |
| | | * a time so for each running function you will need one connection handle. | |
| | | * The options then are: | |
| | | * @li Each function opens a connection when it's called, does the work and | |
| | | * closes the connection when it finishes. This may be costly, wasting a lo | |
| | | t | |
| | | * of time on resolving hostnames, negotiating permissions and allocating | |
| | | * memory. | |
| | | * @li Open the connections in the main loop and pass it to the threads | |
| | | * using the data pointer. Even worse, it's just as costly as before and no | |
| | | w | |
| | | * it may even be kept with connections open doing nothing until a thread | |
| | | * becomes available to run the function. | |
| | | * @li Have a way to share connection handles, so that each instance of the | |
| | | * function can check if an available connection exists, and if it doesn't, | |
| | | * create one and add it to the pool. When no more connections are needed, | |
| | | * they are all closed. | |
| | | * | |
| | | * The last option is the most efficient, but it requires a lot of work to | |
| | | * implement properly. Using thread local data helps to achieve the same | |
| | | * result while avoiding doing all the tracking work on your code. The way | |
| | | * to use it would be, at the worker function, to ask for the connection | |
| | | * with ecore_thread_local_data_find() and if it doesn't exist, then open | |
| | | * a new one and save it with ecore_thread_local_data_add(). Do the work an | |
| | | d | |
| | | * forget about the connection handle, when everything is done the function | |
| | | * just ends. The next worker to run on that thread will check if a | |
| | | * connection exists and find that it does, so the process of opening a | |
| | | * new one has been spared. When no more workers exist, the thread is | |
| | | * destroyed and the callback used when saving the connection will be calle | |
| | | d | |
| | | * to close it. | |
| | | * | |
| | | * This function adds the data @p value to the thread data under the given | |
| | | * @p key. | |
| | | * No other value in the hash may have the same @p key. If you need to | |
| | | * change the value under a @p key, or you don't know if one exists already | |
| | | , | |
| | | * you can use ecore_thread_local_data_set(). | |
| | | * | |
| | | * Neither @p key nor @p value may be NULL and @p key will be copied in the | |
| | | * hash, unless @p direct is set, in which case the string used should not | |
| | | * be freed until the data is removed from the hash. | |
| | | * | |
| | | * The @p cb function will be called when the data in the hash needs to be | |
| | | * freed, be it because it got deleted with ecore_thread_local_data_del() o | |
| | | r | |
| | | * because @p thread was terminated and the hash destroyed. This parameter | |
| | | * may be NULL, in which case @p value needs to be manually freed after | |
| | | * removing it from the hash with either ecore_thread_local_data_del() or | |
| | | * ecore_thread_local_data_set(), but it's very unlikely that this is what | |
| | | * you want. | |
| | | * | |
| | | * This function, and all of the others in the @c ecore_thread_local_data | |
| | | * family of functions, can only be called within the worker function runni | |
| | | ng | |
| | | * in the thread. Do not call them from the main loop or from a thread | |
| | | * other than the one represented by @p thread. | |
| | | * | |
| | | * @see ecore_thread_local_data_set() | |
| | | * @see ecore_thread_local_data_find() | |
| | | * @see ecore_thread_local_data_del() | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_thread_local_data_add(Ecore_Thread *thread, | |
| | | const char *key, | |
| | | void *value, | |
| | | Eina_Free_Cb cb, | |
| | | Eina_Bool direct); | |
| | | /** | |
| | | * Sets some data in the hash local to the given thread | |
| | | * | |
| | | * @param thread The thread context the data belongs to | |
| | | * @param key The name under which the data will be stored | |
| | | * @param value The data to add | |
| | | * @param cb Function to free the data when removed from the hash | |
| | | * | |
| | | * If no data exists in the hash under the @p key, this function adds | |
| | | * @p value in the hash under the given @p key and returns NULL. | |
| | | * The key itself is copied. | |
| | | * | |
| | | * If the hash already contains something under @p key, the data will be | |
| | | * replaced by @p value and the old value will be returned. | |
| | | * | |
| | | * NULL will also be returned if either @p key or @p value are NULL, or if | |
| | | * an error occurred. | |
| | | * | |
| | | * This function, and all of the others in the @c ecore_thread_local_data | |
| | | * family of functions, can only be called within the worker function runni | |
| | | ng | |
| | | * in the thread. Do not call them from the main loop or from a thread | |
| | | * other than the one represented by @p thread. | |
| | | * | |
| | | * @see ecore_thread_local_data_add() | |
| | | * @see ecore_thread_local_data_del() | |
| | | * @see ecore_thread_local_data_find() | |
| | | */ | |
| | | EAPI void * | |
| | | ecore_thread_local_data_set(Ecore_Thread *thread, | |
| | | const char *key, | |
| | | void *value, | |
| | | Eina_Free_Cb cb); | |
| | | /** | |
| | | * Gets data stored in the hash local to the given thread | |
| | | * | |
| | | * @param thread The thread context the data belongs to | |
| | | * @param key The name under which the data is stored | |
| | | * @return The value under the given key, or NULL on error | |
| | | * | |
| | | * Finds and return the data stored in the shared hash under the key @p key | |
| | | . | |
| | | * | |
| | | * This function, and all of the others in the @c ecore_thread_local_data | |
| | | * family of functions, can only be called within the worker function runni | |
| | | ng | |
| | | * in the thread. Do not call them from the main loop or from a thread | |
| | | * other than the one represented by @p thread. | |
| | | * | |
| | | * @see ecore_thread_local_data_add() | |
| | | * @see ecore_thread_local_data_wait() | |
| | | */ | |
| | | EAPI void * | |
| | | ecore_thread_local_data_find(Ecore_Thread *thread, | |
| | | const char *key); | |
| | | /** | |
| | | * Deletes from the thread's hash the data corresponding to the given key | |
| | | * | |
| | | * @param thread The thread context the data belongs to | |
| | | * @param key The name under which the data is stored | |
| | | * @return EINA_TRUE on success, EINA_FALSE on failure | |
| | | * | |
| | | * If there's any data stored associated with @p key in the global hash, | |
| | | * this function will remove it from it and return EINA_TRUE. If no data | |
| | | * exists or an error occurs, it returns EINA_FALSE. | |
| | | * | |
| | | * If the data was added to the hash with a free function, then it will | |
| | | * also be freed after removing it from the hash, otherwise it requires | |
| | | * to be manually freed by the user, which means that if no other reference | |
| | | * to it exists before calling this function, it will result in a memory | |
| | | * leak. | |
| | | * | |
| | | * This function, and all of the others in the @c ecore_thread_local_data | |
| | | * family of functions, can only be called within the worker function runni | |
| | | ng | |
| | | * in the thread. Do not call them from the main loop or from a thread | |
| | | * other than the one represented by @p thread. | |
| | | * | |
| | | * @see ecore_thread_local_data_add() | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_thread_local_data_del(Ecore_Thread *thread, | |
| | | const char *key); | |
| | | | |
| | | /** | |
| | | * Adds some data to a hash shared by all threads | |
| | | * | |
| | | * @param key The name under which the data will be stored | |
| | | * @param value The data to add | |
| | | * @param cb Function to free the data when removed from the hash | |
| | | * @param direct If true, this will not copy the key string (like | |
| | | * eina_hash_direct_add()) | |
| | | * @return EINA_TRUE on success, EINA_FALSE on failure | |
| | | * | |
| | | * Ecore Thread keeps a hash that can be used to share data across several | |
| | | * threads, including the main loop one, without having to manually handle | |
| | | * mutexes to do so safely. | |
| | | * | |
| | | * This function adds the data @p value to this hash under the given @p key | |
| | | . | |
| | | * No other value in the hash may have the same @p key. If you need to | |
| | | * change the value under a @p key, or you don't know if one exists already | |
| | | , | |
| | | * you can use ecore_thread_global_data_set(). | |
| | | * | |
| | | * Neither @p key nor @p value may be NULL and @p key will be copied in the | |
| | | * hash, unless @p direct is set, in which case the string used should not | |
| | | * be freed until the data is removed from the hash. | |
| | | * | |
| | | * The @p cb function will be called when the data in the hash needs to be | |
| | | * freed, be it because it got deleted with ecore_thread_global_data_del() | |
| | | or | |
| | | * because Ecore Thread was shut down and the hash destroyed. This paramete | |
| | | r | |
| | | * may be NULL, in which case @p value needs to be manually freed after | |
| | | * removing it from the hash with either ecore_thread_global_data_del() or | |
| | | * ecore_thread_global_data_set(). | |
| | | * | |
| | | * Manually freeing any data that was added to the hash with a @p cb functi | |
| | | on | |
| | | * is likely to produce a segmentation fault, or any other strange | |
| | | * happenings, later on in the program. | |
| | | * | |
| | | * @see ecore_thread_global_data_del() | |
| | | * @see ecore_thread_global_data_set() | |
| | | * @see ecore_thread_global_data_find() | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_thread_global_data_add(const char *key, | |
| | | void *value, | |
| | | Eina_Free_Cb cb, | |
| | | Eina_Bool direct); | |
| | | /** | |
| | | * Sets some data in the hash shared by all threads | |
| | | * | |
| | | * @param key The name under which the data will be stored | |
| | | * @param value The data to add | |
| | | * @param cb Function to free the data when removed from the hash | |
| | | * | |
| | | * If no data exists in the hash under the @p key, this function adds | |
| | | * @p value in the hash under the given @p key and returns NULL. | |
| | | * The key itself is copied. | |
| | | * | |
| | | * If the hash already contains something under @p key, the data will be | |
| | | * replaced by @p value and the old value will be returned. | |
| | | * | |
| | | * NULL will also be returned if either @p key or @p value are NULL, or if | |
| | | * an error occurred. | |
| | | * | |
| | | * @see ecore_thread_global_data_add() | |
| | | * @see ecore_thread_global_data_del() | |
| | | * @see ecore_thread_global_data_find() | |
| | | */ | |
| | | EAPI void * | |
| | | ecore_thread_global_data_set(const char *key, | |
| | | void *value, | |
| | | Eina_Free_Cb cb); | |
| | | /** | |
| | | * Gets data stored in the hash shared by all threads | |
| | | * | |
| | | * @param key The name under which the data is stored | |
| | | * @return The value under the given key, or NULL on error | |
| | | * | |
| | | * Finds and return the data stored in the shared hash under the key @p key | |
| | | . | |
| | | * | |
| | | * Keep in mind that the data returned may be used by more than one thread | |
| | | * at the same time and no reference counting is done on it by Ecore. | |
| | | * Freeing the data or modifying its contents may require additional | |
| | | * precautions to be considered, depending on the application's design. | |
| | | * | |
| | | * @see ecore_thread_global_data_add() | |
| | | * @see ecore_thread_global_data_wait() | |
| | | */ | |
| | | EAPI void * | |
| | | ecore_thread_global_data_find(const char *key); | |
| | | /** | |
| | | * Deletes from the shared hash the data corresponding to the given key | |
| | | * | |
| | | * @param key The name under which the data is stored | |
| | | * @return EINA_TRUE on success, EINA_FALSE on failure | |
| | | * | |
| | | * If there's any data stored associated with @p key in the global hash, | |
| | | * this function will remove it from it and return EINA_TRUE. If no data | |
| | | * exists or an error occurs, it returns EINA_FALSE. | |
| | | * | |
| | | * If the data was added to the hash with a free function, then it will | |
| | | * also be freed after removing it from the hash, otherwise it requires | |
| | | * to be manually freed by the user, which means that if no other reference | |
| | | * to it exists before calling this function, it will result in a memory | |
| | | * leak. | |
| | | * | |
| | | * Note, also, that freeing data that other threads may be using will resul | |
| | | t | |
| | | * in a crash, so appropriate care must be taken by the application when | |
| | | * that possibility exists. | |
| | | * | |
| | | * @see ecore_thread_global_data_add() | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_thread_global_data_del(const char *key); | |
| | | /** | |
| | | * Gets data stored in the shared hash, or wait for it if it doesn't exist | |
| | | * | |
| | | * @param key The name under which the data is stored | |
| | | * @param seconds The amount of time in seconds to wait for the data. | |
| | | * @return The value under the given key, or NULL on error | |
| | | * | |
| | | * Finds and return the data stored in the shared hash under the key @p key | |
| | | . | |
| | | * | |
| | | * If there's nothing in the hash under the given @p key, the function | |
| | | * will block and wait up to @p seconds seconds for some other thread to | |
| | | * add it with either ecore_thread_global_data_add() or | |
| | | * ecore_thread_global_data_set(). If after waiting there's still no data | |
| | | * to get, NULL will be returned. | |
| | | * | |
| | | * If @p seconds is 0, then no waiting will happen and this function works | |
| | | * like ecore_thread_global_data_find(). If @p seconds is less than 0, then | |
| | | * the function will wait indefinitely. | |
| | | * | |
| | | * Keep in mind that the data returned may be used by more than one thread | |
| | | * at the same time and no reference counting is done on it by Ecore. | |
| | | * Freeing the data or modifying its contents may require additional | |
| | | * precautions to be considered, depending on the application's design. | |
| | | * | |
| | | * @see ecore_thread_global_data_add() | |
| | | * @see ecore_thread_global_data_find() | |
| | | */ | |
| | | EAPI void * | |
| | | ecore_thread_global_data_wait(const char *key, | |
| | | double seconds); | |
| | | | |
| | | /** | |
| | | * @} | |
| | | */ | |
| | | | |
| | | /** | |
| | | * @defgroup Ecore_Pipe_Group Pipe wrapper | |
| | | * | |
| | | * These functions wrap the pipe / write / read functions to easily | |
| | | * integrate its use into ecore's main loop. | |
| | | * | |
| | | * The ecore_pipe_add() function creates file descriptors (sockets | |
| | | * on Windows) and attach a handle to the ecore main loop. That | |
| | | * handle is called when data is read in the pipe. To write data in | |
| | | * the pipe, just call ecore_pipe_write(). When you are done, just | |
| | | * call ecore_pipe_del(). | |
| | | * | |
| | | * For examples see here: | |
| | | * @li @ref tutorial_ecore_pipe_gstreamer_example | |
| | | * @li @ref tutorial_ecore_pipe_simple_example | |
| | | * | |
| | | * @ingroup Ecore_Main_Loop_Group | |
| | | * | |
| | | * @{ | |
| | | */ | |
| | | | |
| | | typedef struct _Ecore_Pipe Ecore_Pipe; /**< A handle for pipes */ | |
| | | | |
| | | /** | |
| | | * @typedef Ecore_Pipe_Cb Ecore_Pipe_Cb | |
| | | * The callback that data written to the pipe is sent to. | |
| | | */ | |
| | | typedef void (*Ecore_Pipe_Cb)(void *data, void *buffer, unsigned int nbyte) | |
| | | ; | |
| | | | |
| | | EAPI Ecore_Pipe * | |
| | | ecore_pipe_add(Ecore_Pipe_Cb handler, | |
| | | const void *data); | |
| | | EAPI void * | |
| | | ecore_pipe_del(Ecore_Pipe *p); | |
| | | EAPI Eina_Bool | |
| | | ecore_pipe_write(Ecore_Pipe *p, | |
| | | const void *buffer, | |
| | | unsigned int nbytes); | |
| | | EAPI void | |
| | | ecore_pipe_write_close(Ecore_Pipe *p); | |
| | | EAPI void | |
| | | ecore_pipe_read_close(Ecore_Pipe *p); | |
| | | EAPI void | |
| | | ecore_pipe_thaw(Ecore_Pipe *p); | |
| | | EAPI void | |
| | | ecore_pipe_freeze(Ecore_Pipe *p); | |
| | | EAPI int | |
| | | ecore_pipe_wait(Ecore_Pipe *p, | |
| | | int message_count, | |
| | | double wait); | |
| | | | |
| | | /** | |
| | | * @} | |
| | | */ | |
| | | | |
| | | /** | |
| | | * @defgroup Ecore_Job_Group Ecore Job functions | |
| | | * | |
| | | * You can queue jobs that are to be done by the main loop when the | |
| | | * current event is dealt with. | |
| | | * | |
| | | * Jobs are processed by the main loop similarly to events. They | |
| | | * also will be executed in the order in which they were added. | |
| | | * | |
| | | * A good use for them is when you don't want to execute an action | |
| | | * immeditately, but want to give the control back to the main loop | |
| | | * so that it will call your job callback when jobs start being | |
| | | * processed (and if there are other jobs added before yours, they | |
| | | * will be processed first). This also gives the chance to other | |
| | | * actions in your program to cancel the job before it is started. | |
| | | * | |
| | | * Examples of using @ref Ecore_Job: | |
| | | * @li @ref ecore_job_example_c | |
| | | * | |
| | | * @ingroup Ecore_Main_Loop_Group | |
| | | * | |
| | | * @{ | |
| | | */ | |
| | | | |
| | | typedef struct _Ecore_Job Ecore_Job; /**< A job handle */ | |
| | | | |
| | | EAPI Ecore_Job * | |
| | | ecore_job_add(Ecore_Cb func, | |
| | | const void *data); | |
| | | EAPI void * | |
| | | ecore_job_del(Ecore_Job *job); | |
| | | | |
| | | /** | |
| | | * @} | |
| | | */ | |
| | | | |
| | | /** | |
| | | * @defgroup Ecore_Application_Group Ecore Application functions | |
| | | * | |
| | | * @{ | |
| | | */ | |
| | | | |
| | | EAPI void | |
| | | ecore_app_args_set(int argc, | |
| | | const char **argv); | |
| | | EAPI void | |
| | | ecore_app_args_get(int *argc, | |
| | | char ***argv); | |
| | | EAPI void | |
| | | ecore_app_restart(void); | |
| | | | |
| | | /** | |
| | | * @} | |
| | | */ | |
| | | | |
| | | /** | |
| | | * @defgroup Ecore_Throttle_Group Ecore Throttle functions | |
| | | * | |
| | | * @ingroup Ecore_Main_Loop_Group | |
| | | * | |
| | | * @{ | |
| | | */ | |
| | | | |
| | | EAPI void | |
| | | ecore_throttle_adjust(double amount); | |
| | | EAPI double | |
| | | ecore_throttle_get(void); | |
| | | | |
| | | /** | |
| | | * @} | |
| | | */ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| #endif | | #endif | |
| | | | |
End of changes. 8 change blocks. |
| 640 lines changed or deleted | | 2450 lines changed or added | |
|
| Ecore_Con.h | | Ecore_Con.h | |
| | | | |
| skipping to change at line 17 | | skipping to change at line 17 | |
| # include <ws2tcpip.h> | | # include <ws2tcpip.h> | |
| #else | | #else | |
| # include <netdb.h> | | # include <netdb.h> | |
| #endif | | #endif | |
| #include <Eina.h> | | #include <Eina.h> | |
| | | | |
| #ifdef EAPI | | #ifdef EAPI | |
| # undef EAPI | | # undef EAPI | |
| #endif | | #endif | |
| | | | |
|
| #ifdef _MSC_VER | | #ifdef _WIN32 | |
| # ifdef BUILDING_DLL | | # ifdef EFL_ECORE_CON_BUILD | |
| # define EAPI __declspec(dllexport) | | # ifdef DLL_EXPORT | |
| | | # define EAPI __declspec(dllexport) | |
| | | # else | |
| | | # define EAPI | |
| | | # endif | |
| # else | | # else | |
| # define EAPI __declspec(dllimport) | | # define EAPI __declspec(dllimport) | |
| # endif | | # endif | |
| #else | | #else | |
| # ifdef __GNUC__ | | # ifdef __GNUC__ | |
| # if __GNUC__ >= 4 | | # if __GNUC__ >= 4 | |
| # define EAPI __attribute__ ((visibility("default"))) | | # define EAPI __attribute__ ((visibility("default"))) | |
| # else | | # else | |
| # define EAPI | | # define EAPI | |
| # endif | | # endif | |
| | | | |
| skipping to change at line 103 | | skipping to change at line 107 | |
| * @li ECORE_CON_EVENT_SERVER_DATA: Whenever your server object connects to
its destination | | * @li ECORE_CON_EVENT_SERVER_DATA: Whenever your server object connects to
its destination | |
| * and receives data, an event of this type is emitted. The data will cont
ain both | | * and receives data, an event of this type is emitted. The data will cont
ain both | |
| * the size and contents of the message sent by the server. It should be n
oted that | | * the size and contents of the message sent by the server. It should be n
oted that | |
| * data within this object is transient, so it must be duplicated in order
to be | | * data within this object is transient, so it must be duplicated in order
to be | |
| * retained. This event will continue to occur until the server has stoppe
d sending its | | * retained. This event will continue to occur until the server has stoppe
d sending its | |
| * message, so a good option for storing this data is an Eina_Strbuf. Once
the message has | | * message, so a good option for storing this data is an Eina_Strbuf. Once
the message has | |
| * been received in full, the server object must be freed with ecore_con_se
rver_free. | | * been received in full, the server object must be freed with ecore_con_se
rver_free. | |
| * | | * | |
| */ | | */ | |
| | | | |
|
| | | /** | |
| | | * @defgroup Ecore_Con_Buffer Buffering | |
| | | * | |
| | | * As Ecore_Con works on an event driven design, as data arrives, events wi | |
| | | ll | |
| | | * be produced containing the data that arrived. It is up to the user of | |
| | | * Ecore_Con to either parse as they go, append to a file to later parse th | |
| | | e | |
| | | * whole file in one go, or append to memory to parse or handle leter. | |
| | | * | |
| | | * To help with this Eina has some handy API's. The Eina_Binbuf and | |
| | | * Eina_Strbuf APIs, abstract dynamic buffer management and make it trivial | |
| | | * to handle buffers at runtime, without having to manage them. Eina_Binbuf | |
| | | * makes it possible to create, expand, reset and slice a blob of memory - | |
| | | * all via API. No system calls, no pointer manipulations and no size | |
| | | * calculation. | |
| | | * | |
| | | * Additional functions include adding content at specified byte positions | |
| | | in | |
| | | * the buffer, escaping the inputs, find and replace strings. This provides | |
| | | * extreme flexibility to play around, with a dynamic blob of memory. | |
| | | * | |
| | | * It is good to free it (using eina_binbuf_free()) after using it. | |
| | | * | |
| | | * Eina_Binbuf compliments Ecore_Con use cases, where dynamic sizes of data | |
| | | * arrive from the network (think http download in chunks). Using | |
| | | * Eina_Binbuf provides enough flexibility to handle data as it arrives and | |
| | | * to defer its processing until desired, without having to think about | |
| | | * where to store the temporary data and how to manage its size. | |
| | | * | |
| | | * An example of how to use these with Ecore_Con follows. | |
| | | * | |
| | | * @code | |
| | | * #include <Eina.h> | |
| | | * #include <Ecore.h> | |
| | | * #include <Ecore_Con.h> | |
| | | * | |
| | | * static Eina_Bool | |
| | | * data_callback(void *data, int type, void *event) | |
| | | * { | |
| | | * Ecore_Con_Event_Url_Data *url_data = event; | |
| | | * if ( url_data->size > 0) | |
| | | * { | |
| | | * // append data as it arrives - don't worry where or how it gets | |
| | | stored. | |
| | | * // Also don't worry about size, expanding, reallocing etc. | |
| | | * // just keep appending - size is automatically handled. | |
| | | * | |
| | | * eina_binbuf_append_length(data, url_data->data, url_data->size); | |
| | | * | |
| | | * fprintf(stderr, "Appended %d \n", url_data->size); | |
| | | * } | |
| | | * return EINA_TRUE; | |
| | | * } | |
| | | * | |
| | | * | |
| | | * | |
| | | * static Eina_Bool | |
| | | * completion_callback(void *data, int type, void *event) | |
| | | * { | |
| | | * Ecore_Con_Event_Url_Complete *url_complete = event; | |
| | | * printf("download completed with status code: %d\n", url_complete->sta | |
| | | tus); | |
| | | * | |
| | | * // get the data back from Eina_Binbuf | |
| | | * char *ptr = eina_binbuf_string_get(data); | |
| | | * size_t size = eina_binbuf_length_get(data); | |
| | | * | |
| | | * // process data as required (write to file) | |
| | | * fprintf(stderr, "Size of data = %d bytes\n", size); | |
| | | * int fd = open("./elm.png", O_CREAT); | |
| | | * write(fd, ptr, size); | |
| | | * close(fd); | |
| | | * | |
| | | * // free it when done. | |
| | | * eina_binbuf_free(data); | |
| | | * | |
| | | * ecore_main_loop_quit(); | |
| | | * | |
| | | * return EINA_TRUE; | |
| | | * } | |
| | | * | |
| | | * | |
| | | * int | |
| | | * main(int argc, char **argv) | |
| | | * { | |
| | | * | |
| | | * const char *url = "http://www.enlightenment.org/p/index/d/logo.png"; | |
| | | * | |
| | | * ecore_init(); | |
| | | * ecore_con_init(); | |
| | | * ecore_con_url_init(); | |
| | | * | |
| | | * | |
| | | * // This is single additional line to manage dynamic network data. | |
| | | * Eina_Binbuf *data = eina_binbuf_new(); | |
| | | * Ecore_Con_Url *url_con = ecore_con_url_new(url); | |
| | | * | |
| | | * ecore_event_handler_add(ECORE_CON_EVENT_URL_COMPLETE, | |
| | | * completion_callbac | |
| | | k, | |
| | | * data); | |
| | | * ecore_event_handler_add(ECORE_CON_EVENT_URL_DATA, | |
| | | * data_callback, | |
| | | * data); | |
| | | * ecore_con_url_get(url_con); | |
| | | * | |
| | | * ecore_main_loop_begin(); | |
| | | * return 0; | |
| | | * } | |
| | | * @endcode | |
| | | */ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| #define ECORE_CON_USE_SSL ECORE_CON_USE_SSL2 | | #define ECORE_CON_USE_SSL ECORE_CON_USE_SSL2 | |
| #define ECORE_CON_REMOTE_SYSTEM ECORE_CON_REMOTE_TCP | | #define ECORE_CON_REMOTE_SYSTEM ECORE_CON_REMOTE_TCP | |
| | | | |
| /** | | /** | |
| * @typedef Ecore_Con_Server | | * @typedef Ecore_Con_Server | |
| * A connection handle to a server | | * A connection handle to a server | |
| * @ingroup Ecore_Con_Server_Group | | * @ingroup Ecore_Con_Server_Group | |
| | | | |
| skipping to change at line 142 | | skipping to change at line 253 | |
| * @{ | | * @{ | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * @typedef Ecore_Con_Event_Client_Add | | * @typedef Ecore_Con_Event_Client_Add | |
| * Used as the @p data param for the corresponding event | | * Used as the @p data param for the corresponding event | |
| */ | | */ | |
| typedef struct _Ecore_Con_Event_Client_Add Ecore_Con_Event_Client_Add; | | typedef struct _Ecore_Con_Event_Client_Add Ecore_Con_Event_Client_Add; | |
| | | | |
| /** | | /** | |
|
| | | * @typedef Ecore_Con_Event_Client_Upgrade | |
| | | * Used as the @p data param for the corresponding event | |
| | | * @since 1.1 | |
| | | */ | |
| | | typedef struct _Ecore_Con_Event_Client_Upgrade Ecore_Con_Event_Client_Upgra | |
| | | de; | |
| | | | |
| | | /** | |
| * @typedef Ecore_Con_Event_Client_Del | | * @typedef Ecore_Con_Event_Client_Del | |
| * Used as the @p data param for the corresponding event | | * Used as the @p data param for the corresponding event | |
| */ | | */ | |
| typedef struct _Ecore_Con_Event_Client_Del Ecore_Con_Event_Client_Del; | | typedef struct _Ecore_Con_Event_Client_Del Ecore_Con_Event_Client_Del; | |
| | | | |
| /** | | /** | |
|
| | | * @typedef Ecore_Con_Event_Client_Error | |
| | | * Used as the @p data param for the corresponding event | |
| | | * @since 1.1 | |
| | | */ | |
| | | typedef struct _Ecore_Con_Event_Client_Error Ecore_Con_Event_Client_Error; | |
| | | | |
| | | /** | |
| * @typedef Ecore_Con_Event_Server_Add | | * @typedef Ecore_Con_Event_Server_Add | |
| * Used as the @p data param for the corresponding event | | * Used as the @p data param for the corresponding event | |
| */ | | */ | |
| typedef struct _Ecore_Con_Event_Server_Add Ecore_Con_Event_Server_Add; | | typedef struct _Ecore_Con_Event_Server_Add Ecore_Con_Event_Server_Add; | |
| | | | |
| /** | | /** | |
|
| | | * @typedef Ecore_Con_Event_Server_Upgrade | |
| | | * Used as the @p data param for the corresponding event | |
| | | * @since 1.1 | |
| | | */ | |
| | | typedef struct _Ecore_Con_Event_Server_Upgrade Ecore_Con_Event_Server_Upgra | |
| | | de; | |
| | | | |
| | | /** | |
| * @typedef Ecore_Con_Event_Server_Del | | * @typedef Ecore_Con_Event_Server_Del | |
| * Used as the @p data param for the corresponding event | | * Used as the @p data param for the corresponding event | |
| */ | | */ | |
| typedef struct _Ecore_Con_Event_Server_Del Ecore_Con_Event_Server_Del; | | typedef struct _Ecore_Con_Event_Server_Del Ecore_Con_Event_Server_Del; | |
| | | | |
| /** | | /** | |
|
| | | * @typedef Ecore_Con_Event_Server_Error | |
| | | * Used as the @p data param for the corresponding event | |
| | | * @since 1.1 | |
| | | */ | |
| | | typedef struct _Ecore_Con_Event_Server_Error Ecore_Con_Event_Server_Error; | |
| | | | |
| | | /** | |
| * @typedef Ecore_Con_Event_Client_Data | | * @typedef Ecore_Con_Event_Client_Data | |
| * Used as the @p data param for the corresponding event | | * Used as the @p data param for the corresponding event | |
| */ | | */ | |
| typedef struct _Ecore_Con_Event_Client_Data Ecore_Con_Event_Client_Data; | | typedef struct _Ecore_Con_Event_Client_Data Ecore_Con_Event_Client_Data; | |
| | | | |
| /** | | /** | |
| * @typedef Ecore_Con_Event_Server_Data | | * @typedef Ecore_Con_Event_Server_Data | |
| * Used as the @p data param for the corresponding event | | * Used as the @p data param for the corresponding event | |
| */ | | */ | |
| typedef struct _Ecore_Con_Event_Server_Data Ecore_Con_Event_Server_Data; | | typedef struct _Ecore_Con_Event_Server_Data Ecore_Con_Event_Server_Data; | |
| | | | |
| /** | | /** | |
|
| | | * @typedef Ecore_Con_Event_Client_Write | |
| | | * Used as the @p data param for the corresponding event | |
| | | * @since 1.1 | |
| | | */ | |
| | | typedef struct _Ecore_Con_Event_Client_Write Ecore_Con_Event_Client_Write; | |
| | | | |
| | | /** | |
| | | * @typedef Ecore_Con_Event_Server_Write | |
| | | * Used as the @p data param for the corresponding event | |
| | | * @since 1.1 | |
| | | */ | |
| | | typedef struct _Ecore_Con_Event_Server_Write Ecore_Con_Event_Server_Write; | |
| | | | |
| | | /** | |
| * @typedef Ecore_Con_Event_Url_Data | | * @typedef Ecore_Con_Event_Url_Data | |
| * Used as the @p data param for the corresponding event | | * Used as the @p data param for the corresponding event | |
|
| | | * @ingroup Ecore_Con_Url_Group | |
| */ | | */ | |
| typedef struct _Ecore_Con_Event_Url_Data Ecore_Con_Event_Url_Data; | | typedef struct _Ecore_Con_Event_Url_Data Ecore_Con_Event_Url_Data; | |
| | | | |
| /** | | /** | |
| * @typedef Ecore_Con_Event_Url_Complete | | * @typedef Ecore_Con_Event_Url_Complete | |
| * Used as the @p data param for the corresponding event | | * Used as the @p data param for the corresponding event | |
|
| | | * @ingroup Ecore_Con_Url_Group | |
| */ | | */ | |
| typedef struct _Ecore_Con_Event_Url_Complete Ecore_Con_Event_Url_Complete; | | typedef struct _Ecore_Con_Event_Url_Complete Ecore_Con_Event_Url_Complete; | |
| | | | |
| /** | | /** | |
| * @typedef Ecore_Con_Event_Url_Progress | | * @typedef Ecore_Con_Event_Url_Progress | |
| * Used as the @p data param for the corresponding event | | * Used as the @p data param for the corresponding event | |
|
| | | * @ingroup Ecore_Con_Url_Group | |
| */ | | */ | |
| typedef struct _Ecore_Con_Event_Url_Progress Ecore_Con_Event_Url_Progress; | | typedef struct _Ecore_Con_Event_Url_Progress Ecore_Con_Event_Url_Progress; | |
| | | | |
| /** | | /** | |
| * @struct _Ecore_Con_Event_Client_Add | | * @struct _Ecore_Con_Event_Client_Add | |
| * Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_ADD event | | * Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_ADD event | |
| */ | | */ | |
| struct _Ecore_Con_Event_Client_Add | | struct _Ecore_Con_Event_Client_Add | |
| { | | { | |
| Ecore_Con_Client *client; /** the client that connected */ | | Ecore_Con_Client *client; /** the client that connected */ | |
| }; | | }; | |
| | | | |
| /** | | /** | |
|
| | | * @struct _Ecore_Con_Event_Client_Upgrade | |
| | | * Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_UPGRADE ev | |
| | | ent | |
| | | * @since 1.1 | |
| | | */ | |
| | | struct _Ecore_Con_Event_Client_Upgrade | |
| | | { | |
| | | Ecore_Con_Client *client; /** the client that completed handshake */ | |
| | | }; | |
| | | | |
| | | /** | |
| * @struct _Ecore_Con_Event_Client_Del | | * @struct _Ecore_Con_Event_Client_Del | |
| * Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_DEL event | | * Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_DEL event | |
| */ | | */ | |
| struct _Ecore_Con_Event_Client_Del | | struct _Ecore_Con_Event_Client_Del | |
| { | | { | |
| Ecore_Con_Client *client; /** the client that was lost */ | | Ecore_Con_Client *client; /** the client that was lost */ | |
| }; | | }; | |
| | | | |
| /** | | /** | |
|
| | | * @struct _Ecore_Con_Event_Client_Error | |
| | | * Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_ERROR even | |
| | | t | |
| | | */ | |
| | | struct _Ecore_Con_Event_Client_Error | |
| | | { | |
| | | Ecore_Con_Client *client; /** the client for which an error occurred */ | |
| | | char *error; /**< the error string describing what happened */ | |
| | | }; | |
| | | | |
| | | /** | |
| * @struct _Ecore_Con_Event_Server_Add | | * @struct _Ecore_Con_Event_Server_Add | |
| * Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_ADD event | | * Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_ADD event | |
| */ | | */ | |
| struct _Ecore_Con_Event_Server_Add | | struct _Ecore_Con_Event_Server_Add | |
| { | | { | |
| Ecore_Con_Server *server; /** the server that was connected to */ | | Ecore_Con_Server *server; /** the server that was connected to */ | |
| }; | | }; | |
| | | | |
| /** | | /** | |
|
| | | * @struct _Ecore_Con_Event_Server_Upgrade | |
| | | * Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_UPGRADE ev | |
| | | ent | |
| | | * @since 1.1 | |
| | | */ | |
| | | struct _Ecore_Con_Event_Server_Upgrade | |
| | | { | |
| | | Ecore_Con_Server *server; /** the server that was connected to */ | |
| | | }; | |
| | | | |
| | | /** | |
| * @struct _Ecore_Con_Event_Server_Del | | * @struct _Ecore_Con_Event_Server_Del | |
| * Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_DEL event | | * Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_DEL event | |
| */ | | */ | |
| struct _Ecore_Con_Event_Server_Del | | struct _Ecore_Con_Event_Server_Del | |
| { | | { | |
| Ecore_Con_Server *server; /** the client that was lost */ | | Ecore_Con_Server *server; /** the client that was lost */ | |
| }; | | }; | |
| | | | |
| /** | | /** | |
|
| | | * @struct _Ecore_Con_Event_Server_Error | |
| | | * Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_ERROR even | |
| | | t | |
| | | */ | |
| | | struct _Ecore_Con_Event_Server_Error | |
| | | { | |
| | | Ecore_Con_Server *server; /** the server for which an error occurred */ | |
| | | char *error; /**< the error string describing what happened */ | |
| | | }; | |
| | | | |
| | | /** | |
| * @struct _Ecore_Con_Event_Client_Data | | * @struct _Ecore_Con_Event_Client_Data | |
| * Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_DATA event | | * Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_DATA event | |
| */ | | */ | |
| struct _Ecore_Con_Event_Client_Data | | struct _Ecore_Con_Event_Client_Data | |
| { | | { | |
| Ecore_Con_Client *client; /**< the client that connected */ | | Ecore_Con_Client *client; /**< the client that connected */ | |
| void *data; /**< the data that the client sent */ | | void *data; /**< the data that the client sent */ | |
| int size; /**< the length of the data sent */ | | int size; /**< the length of the data sent */ | |
| }; | | }; | |
| | | | |
| | | | |
| skipping to change at line 248 | | skipping to change at line 444 | |
| * Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_DATA event | | * Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_DATA event | |
| */ | | */ | |
| struct _Ecore_Con_Event_Server_Data | | struct _Ecore_Con_Event_Server_Data | |
| { | | { | |
| Ecore_Con_Server *server; /**< the server that was connected to */ | | Ecore_Con_Server *server; /**< the server that was connected to */ | |
| void *data; /**< the data that the server sent */ | | void *data; /**< the data that the server sent */ | |
| int size; /**< the length of the data sent */ | | int size; /**< the length of the data sent */ | |
| }; | | }; | |
| | | | |
| /** | | /** | |
|
| | | * @struct _Ecore_Con_Event_Client_Write | |
| | | * Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_WRITE even | |
| | | t | |
| | | */ | |
| | | struct _Ecore_Con_Event_Client_Write | |
| | | { | |
| | | Ecore_Con_Client *client; /**< the client that connected */ | |
| | | int size; /**< the length of the data sent */ | |
| | | }; | |
| | | | |
| | | /** | |
| | | * @struct _Ecore_Con_Event_Server_Write | |
| | | * Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_WRITE even | |
| | | t | |
| | | */ | |
| | | struct _Ecore_Con_Event_Server_Write | |
| | | { | |
| | | Ecore_Con_Server *server; /**< the server that was connected to */ | |
| | | int size; /**< the length of the data sent */ | |
| | | }; | |
| | | | |
| | | /** | |
| * @struct _Ecore_Con_Event_Url_Data | | * @struct _Ecore_Con_Event_Url_Data | |
| * Used as the @p data param for the @ref ECORE_CON_EVENT_URL_DATA event | | * Used as the @p data param for the @ref ECORE_CON_EVENT_URL_DATA event | |
|
| | | * @ingroup Ecore_Con_Url_Group | |
| */ | | */ | |
| struct _Ecore_Con_Event_Url_Data | | struct _Ecore_Con_Event_Url_Data | |
| { | | { | |
|
| Ecore_Con_Url *url_con; | | Ecore_Con_Url *url_con; /**< a pointer to the connection object */ | |
| int size; | | int size; /**< the size of the current received data (in bytes) */ | |
| unsigned char data[1]; | | unsigned char data[1]; /**< the data received on this event */ | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * @struct _Ecore_Con_Event_Url_Complete | | * @struct _Ecore_Con_Event_Url_Complete | |
| * Used as the @p data param for the @ref ECORE_CON_EVENT_URL_COMPLETE even
t | | * Used as the @p data param for the @ref ECORE_CON_EVENT_URL_COMPLETE even
t | |
|
| | | * @ingroup Ecore_Con_Url_Group | |
| */ | | */ | |
| struct _Ecore_Con_Event_Url_Complete | | struct _Ecore_Con_Event_Url_Complete | |
| { | | { | |
|
| Ecore_Con_Url *url_con; | | Ecore_Con_Url *url_con; /**< a pointer to the connection object */ | |
| int status; | | int status; /**< HTTP status code of the operation (200, 404, 401, etc.) | |
| | | */ | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * @struct _Ecore_Con_Event_Url_Progress | | * @struct _Ecore_Con_Event_Url_Progress | |
| * Used as the @p data param for the @ref ECORE_CON_EVENT_URL_PROGRESS even
t | | * Used as the @p data param for the @ref ECORE_CON_EVENT_URL_PROGRESS even
t | |
|
| | | * @ingroup Ecore_Con_Url_Group | |
| */ | | */ | |
| struct _Ecore_Con_Event_Url_Progress | | struct _Ecore_Con_Event_Url_Progress | |
| { | | { | |
|
| Ecore_Con_Url *url_con; | | Ecore_Con_Url *url_con; /**< a pointer to the connection object */ | |
| struct | | struct | |
| { | | { | |
|
| double total; | | double total; /**< total size of the downloading data (in bytes) */ | |
| double now; | | double now; /**< current size of the downloading data (in bytes) */ | |
| } down; | | } down; /**< download info */ | |
| struct | | struct | |
| { | | { | |
|
| double total; | | double total; /**< total size of the uploading data (in bytes) */ | |
| double now; | | double now; /**< current size of the uploading data (in bytes) */ | |
| } up; | | } up; /**< upload info */ | |
| }; | | }; | |
| | | | |
| /** A client has connected to the server */ | | /** A client has connected to the server */ | |
| EAPI extern int ECORE_CON_EVENT_CLIENT_ADD; | | EAPI extern int ECORE_CON_EVENT_CLIENT_ADD; | |
| /** A client has disconnected from the server */ | | /** A client has disconnected from the server */ | |
| EAPI extern int ECORE_CON_EVENT_CLIENT_DEL; | | EAPI extern int ECORE_CON_EVENT_CLIENT_DEL; | |
|
| | | /** A client experienced an error | |
| | | * @since 1.1 | |
| | | */ | |
| | | EAPI extern int ECORE_CON_EVENT_CLIENT_ERROR; | |
| | | /** A client connection has been upgraded to SSL | |
| | | * @since 1.1 | |
| | | */ | |
| | | EAPI extern int ECORE_CON_EVENT_CLIENT_UPGRADE; | |
| /** A server was created */ | | /** A server was created */ | |
| EAPI extern int ECORE_CON_EVENT_SERVER_ADD; | | EAPI extern int ECORE_CON_EVENT_SERVER_ADD; | |
| /** A server connection was lost */ | | /** A server connection was lost */ | |
| EAPI extern int ECORE_CON_EVENT_SERVER_DEL; | | EAPI extern int ECORE_CON_EVENT_SERVER_DEL; | |
|
| | | /** A server experienced an error | |
| | | * @since 1.1 | |
| | | */ | |
| | | EAPI extern int ECORE_CON_EVENT_SERVER_ERROR; | |
| | | /** A server connection has been upgraded to SSL | |
| | | * @since 1.1 | |
| | | */ | |
| | | EAPI extern int ECORE_CON_EVENT_SERVER_UPGRADE; | |
| | | /** A server connection has sent data to its client | |
| | | * @since 1.1 | |
| | | */ | |
| | | EAPI extern int ECORE_CON_EVENT_CLIENT_WRITE; | |
| | | /** A server connection object has sent data | |
| | | * @since 1.1 | |
| | | */ | |
| | | EAPI extern int ECORE_CON_EVENT_SERVER_WRITE; | |
| /** A client connected to the server has sent data */ | | /** A client connected to the server has sent data */ | |
| EAPI extern int ECORE_CON_EVENT_CLIENT_DATA; | | EAPI extern int ECORE_CON_EVENT_CLIENT_DATA; | |
| /** A server connection object has data */ | | /** A server connection object has data */ | |
| EAPI extern int ECORE_CON_EVENT_SERVER_DATA; | | EAPI extern int ECORE_CON_EVENT_SERVER_DATA; | |
| /** A URL object has data */ | | /** A URL object has data */ | |
| EAPI extern int ECORE_CON_EVENT_URL_DATA; | | EAPI extern int ECORE_CON_EVENT_URL_DATA; | |
| /** A URL object has completed its transfer to and from the server and can
be reused */ | | /** A URL object has completed its transfer to and from the server and can
be reused */ | |
| EAPI extern int ECORE_CON_EVENT_URL_COMPLETE; | | EAPI extern int ECORE_CON_EVENT_URL_COMPLETE; | |
| /** A URL object has made progress in its transfer */ | | /** A URL object has made progress in its transfer */ | |
| EAPI extern int ECORE_CON_EVENT_URL_PROGRESS; | | EAPI extern int ECORE_CON_EVENT_URL_PROGRESS; | |
| | | | |
| /** | | /** | |
| * @} | | * @} | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * @defgroup Ecore_Con_Lib_Group Ecore Connection Library Functions | | * @defgroup Ecore_Con_Lib_Group Ecore Connection Library Functions | |
| * | | * | |
|
| | | * Utility functions that set up and shut down the Ecore Connection | |
| | | * library. | |
| | | * | |
| | | * There's also ecore_con_lookup() that can be used to make simple asynchro | |
| | | nous | |
| | | * DNS lookups. | |
| | | * | |
| | | * A simple example of how to use these functions: | |
| | | * @li @ref ecore_con_lookup_example_c | |
| | | * | |
| * @{ | | * @{ | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * @typedef Ecore_Con_Dns_Cb | | * @typedef Ecore_Con_Dns_Cb | |
| * A callback type for use with @ref ecore_con_lookup. | | * A callback type for use with @ref ecore_con_lookup. | |
| */ | | */ | |
| typedef void (*Ecore_Con_Dns_Cb)(const char *canonname, | | typedef void (*Ecore_Con_Dns_Cb)(const char *canonname, | |
| const char *ip, | | const char *ip, | |
| struct sockaddr *addr, | | struct sockaddr *addr, | |
| | | | |
| skipping to change at line 335 | | skipping to change at line 587 | |
| | | | |
| /** | | /** | |
| * @typedef Ecore_Con_Type | | * @typedef Ecore_Con_Type | |
| * @enum _Ecore_Con_Type | | * @enum _Ecore_Con_Type | |
| * Types for an ecore_con client/server object. A correct way to set this
type is | | * Types for an ecore_con client/server object. A correct way to set this
type is | |
| * with an ECORE_CON_$TYPE, optionally OR'ed with an ECORE_CON_$USE if encr
yption is desired, | | * with an ECORE_CON_$TYPE, optionally OR'ed with an ECORE_CON_$USE if encr
yption is desired, | |
| * and LOAD_CERT if the previously loaded certificate should be used. | | * and LOAD_CERT if the previously loaded certificate should be used. | |
| * @code | | * @code | |
| * ECORE_CON_REMOTE_TCP | ECORE_CON_USE_TLS | ECORE_CON_LOAD_CERT | | * ECORE_CON_REMOTE_TCP | ECORE_CON_USE_TLS | ECORE_CON_LOAD_CERT | |
| * @endcode | | * @endcode | |
|
| | | * @ingroup Ecore_Con_Server_Group | |
| */ | | */ | |
| typedef enum _Ecore_Con_Type | | typedef enum _Ecore_Con_Type | |
| { | | { | |
| /** Socket in ~/.ecore */ | | /** Socket in ~/.ecore */ | |
| ECORE_CON_LOCAL_USER = 0, | | ECORE_CON_LOCAL_USER = 0, | |
| /** Socket in /tmp */ | | /** Socket in /tmp */ | |
| ECORE_CON_LOCAL_SYSTEM = 1, | | ECORE_CON_LOCAL_SYSTEM = 1, | |
| /** Abstract socket */ | | /** Abstract socket */ | |
| ECORE_CON_LOCAL_ABSTRACT = 2, | | ECORE_CON_LOCAL_ABSTRACT = 2, | |
| /** Remote server using TCP */ | | /** Remote server using TCP */ | |
| | | | |
| skipping to change at line 365 | | skipping to change at line 618 | |
| /** Use SSL3 */ | | /** Use SSL3 */ | |
| ECORE_CON_USE_SSL3 = (1 << 5), | | ECORE_CON_USE_SSL3 = (1 << 5), | |
| /** Use TLS */ | | /** Use TLS */ | |
| ECORE_CON_USE_TLS = (1 << 6), | | ECORE_CON_USE_TLS = (1 << 6), | |
| /** Use both TLS and SSL3 */ | | /** Use both TLS and SSL3 */ | |
| ECORE_CON_USE_MIXED = ECORE_CON_USE_SSL3 | ECORE_CON_USE_TLS, | | ECORE_CON_USE_MIXED = ECORE_CON_USE_SSL3 | ECORE_CON_USE_TLS, | |
| /** Attempt to use the loaded certificate */ | | /** Attempt to use the loaded certificate */ | |
| ECORE_CON_LOAD_CERT = (1 << 7) | | ECORE_CON_LOAD_CERT = (1 << 7) | |
| } Ecore_Con_Type; | | } Ecore_Con_Type; | |
| | | | |
|
| | | /** | |
| | | * Initialises the Ecore_Con library. | |
| | | * @return Number of times the library has been initialised without being | |
| | | * shut down. | |
| | | * | |
| | | * @note This function already calls ecore_init() internally, so you don't | |
| | | need | |
| | | * to call it explicitly. | |
| | | */ | |
| EAPI int ecore_con_init(void); | | EAPI int ecore_con_init(void); | |
|
| | | | |
| | | /** | |
| | | * Shuts down the Ecore_Con library. | |
| | | * @return Number of times the library has been initialised without being | |
| | | * shut down. | |
| | | * @note This function already calls ecore_shutdown() internally, so you do | |
| | | n't | |
| | | * need to call it explicitly unless you called ecore_init() explicitly too | |
| | | . | |
| | | */ | |
| EAPI int ecore_con_shutdown(void); | | EAPI int ecore_con_shutdown(void); | |
| | | | |
|
| | | /** | |
| | | * Do an asynchronous DNS lookup. | |
| | | * | |
| | | * @param name IP address or server name to translate. | |
| | | * @param done_cb Callback to notify when done. | |
| | | * @param data User data to be given to done_cb. | |
| | | * @return EINA_TRUE if the request did not fail to be set up, EINA_FALSE i | |
| | | f it | |
| | | * failed. | |
| | | * | |
| | | * This function performs a DNS lookup on the hostname specified by @p name | |
| | | , | |
| | | * then calls @p done_cb with the result and the @p data given as parameter | |
| | | . | |
| | | * The result will be given to the @p done_cb as follows: | |
| | | * @li @c canonname - the canonical name of the address | |
| | | * @li @c ip - the resolved ip address | |
| | | * @li @c addr - a pointer to the socket address | |
| | | * @li @c addrlen - the length of the socket address, in bytes | |
| | | * @li @c data - the data pointer given as parameter to ecore_con_lookup() | |
| | | */ | |
| EAPI Eina_Bool ecore_con_lookup(const char *name, | | EAPI Eina_Bool ecore_con_lookup(const char *name, | |
| Ecore_Con_Dns_Cb done_cb, | | Ecore_Con_Dns_Cb done_cb, | |
| const void *data); | | const void *data); | |
| | | | |
| /** | | /** | |
| * @} | | * @} | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * @defgroup Ecore_Con_SSL_Group Ecore Connection SSL Functions | | * @defgroup Ecore_Con_SSL_Group Ecore Connection SSL Functions | |
| * | | * | |
| * @{ | | * @{ | |
| */ | | */ | |
| EAPI int ecore_con_ssl_available_get(void); | | EAPI int ecore_con_ssl_available_get(void); | |
| EAPI Eina_Bool ecore_con_ssl_server_cert_add(Ecore_Con_Server *svr,
const char *cert); | | EAPI Eina_Bool ecore_con_ssl_server_cert_add(Ecore_Con_Server *svr,
const char *cert); | |
| EAPI Eina_Bool ecore_con_ssl_server_privkey_add(Ecore_Con_Server *s
vr, const char *key_file); | | EAPI Eina_Bool ecore_con_ssl_server_privkey_add(Ecore_Con_Server *s
vr, const char *key_file); | |
| EAPI Eina_Bool ecore_con_ssl_server_crl_add(Ecore_Con_Server *svr,
const char *crl_file); | | EAPI Eina_Bool ecore_con_ssl_server_crl_add(Ecore_Con_Server *svr,
const char *crl_file); | |
| EAPI Eina_Bool ecore_con_ssl_server_cafile_add(Ecore_Con_Server *sv
r, const char *ca_file); | | EAPI Eina_Bool ecore_con_ssl_server_cafile_add(Ecore_Con_Server *sv
r, const char *ca_file); | |
| EAPI void ecore_con_ssl_server_verify(Ecore_Con_Server *svr); | | EAPI void ecore_con_ssl_server_verify(Ecore_Con_Server *svr); | |
|
| | | EAPI void ecore_con_ssl_server_verify_basic(Ecore_Con_Server * | |
| | | svr); | |
| | | EAPI Eina_Bool ecore_con_ssl_server_upgrade(Ecore_Con_Server *svr, | |
| | | Ecore_Con_Type compl_type); | |
| | | EAPI Eina_Bool ecore_con_ssl_client_upgrade(Ecore_Con_Client *cl, E | |
| | | core_Con_Type compl_type); | |
| | | | |
| /** | | /** | |
| * @} | | * @} | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * @defgroup Ecore_Con_Server_Group Ecore Connection Server Functions | | * @defgroup Ecore_Con_Server_Group Ecore Connection Server Functions | |
| * | | * | |
|
| | | * This group of functions is applied to an @ref Ecore_Con_Server object. I | |
| | | t | |
| | | * doesn't mean that they should be used in the server application, but on | |
| | | the | |
| | | * server object. In fact, most of them should be used in the client | |
| | | * application, when retrieving information or sending data. | |
| | | * | |
| | | * Setting up a server is very simple: you just need to start it with | |
| | | * ecore_con_server_add() and setup some callbacks to the events | |
| | | * #ECORE_CON_EVENT_CLIENT_ADD, #ECORE_CON_EVENT_CLIENT_DEL and | |
| | | * #ECORE_CON_EVENT_CLIENT_DATA, that will be called when a client is | |
| | | * communicating with the server: | |
| | | * | |
| | | * @code | |
| | | * if (!(svr = ecore_con_server_add(ECORE_CON_REMOTE_TCP, "127.0.0.1", 8080 | |
| | | , NULL))) | |
| | | * exit(1); | |
| | | * | |
| | | * ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_ADD, _add_cb, NULL); | |
| | | * ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_DEL, _del_cb, NULL); | |
| | | * ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_DATA, _data_cb, NULL); | |
| | | * | |
| | | * ecore_main_loop_begin(); | |
| | | * @endcode | |
| | | * | |
| | | * The function ecore_con_server_connect() can be used to write a client th | |
| | | at | |
| | | * connects to a server. The resulting code will be very similar to the ser | |
| | | ver | |
| | | * code: | |
| | | * | |
| | | * @code | |
| | | * if (!(svr = ecore_con_server_connect(ECORE_CON_REMOTE_TCP, "127.0.0.1", | |
| | | 8080, NULL))) | |
| | | * exit(1); | |
| | | * | |
| | | * ecore_event_handler_add(ECORE_CON_EVENT_SERVER_ADD, _add_cb, NULL); | |
| | | * ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DEL, _del_cb, NULL); | |
| | | * ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA, _data_cb, NULL); | |
| | | * | |
| | | * ecore_main_loop_begin(); | |
| | | * @endcode | |
| | | * | |
| | | * After these two pieces of code are executed, respectively, in the server | |
| | | and | |
| | | * client code, the server will be up and running and the client will try t | |
| | | o | |
| | | * connect to it. The connection, with its subsequent messages being sent f | |
| | | rom | |
| | | * server to client and client to server, can be represented in the followi | |
| | | ng | |
| | | * sequence diagram: | |
| | | * | |
| | | * @htmlonly | |
| | | * <img src="ecore_con-client-server.png" style="max-width: 400px"/> | |
| | | * <a href="ecore_con-client-server.png">Full size</a> | |
| | | * @endhtmlonly | |
| | | * | |
| | | * @image rtf ecore_con-client-server.png | |
| | | * @image latex ecore_con-client-server.eps width=\textwidth | |
| | | * | |
| | | * Please notice the important difference between these two codes: the firs | |
| | | t is | |
| | | * used for writing a @b server, while the second should be used for writin | |
| | | g a | |
| | | * @b client. | |
| | | * | |
| | | * A reference for the @c client functions can be found at @ref | |
| | | * Ecore_Con_Client_Group. | |
| | | * | |
| | | * Examples of usage for this API can be found here: | |
| | | * @li @ref ecore_con_server_simple_example_c | |
| | | * @li @ref ecore_con_client_simple_example_c | |
| | | * | |
| * @{ | | * @{ | |
| */ | | */ | |
| | | | |
|
| | | /** | |
| | | * Creates a server to listen for connections. | |
| | | * | |
| | | * @param type The connection type. | |
| | | * @param name Name to associate with the socket. It is used when | |
| | | * generating the socket name of a Unix socket, or for | |
| | | * determining what host to listen on for TCP sockets. | |
| | | * @c NULL will not be accepted. | |
| | | * @param port Number to identify socket. When a Unix socket is use | |
| | | d, | |
| | | * it becomes part of the socket name. When a TCP socke | |
| | | t | |
| | | * is used, it is used as the TCP port. | |
| | | * @param data Data to associate with the created Ecore_Con_Server | |
| | | * object. | |
| | | * @return A new Ecore_Con_Server. | |
| | | * | |
| | | * The socket on which the server listens depends on the connection | |
| | | * type: | |
| | | * @li If @a type is @c ECORE_CON_LOCAL_USER, the server will listen on | |
| | | * the Unix socket "~/.ecore/[name]/[port]". | |
| | | * @li If @a type is @c ECORE_CON_LOCAL_SYSTEM, the server will listen | |
| | | * on Unix socket "/tmp/.ecore_service|[name]|[port]". | |
| | | * @li If @a type is @c ECORE_CON_REMOTE_TCP, the server will listen | |
| | | * on TCP port @c port. | |
| | | * | |
| | | * More information about the @p type can be found at @ref _Ecore_Con_Type. | |
| | | * | |
| | | * The @p data parameter can be fetched later using ecore_con_server_data_g | |
| | | et() | |
| | | * or changed with ecore_con_server_data_set(). | |
| | | */ | |
| EAPI Ecore_Con_Server *ecore_con_server_add(Ecore_Con_Type type, | | EAPI Ecore_Con_Server *ecore_con_server_add(Ecore_Con_Type type, | |
| const char *name, int port, | | const char *name, int port, | |
| const void *data); | | const void *data); | |
| | | | |
|
| | | /** | |
| | | * Creates a connection to the specified server and returns an associated o | |
| | | bject. | |
| | | * | |
| | | * @param type The connection type. | |
| | | * @param name Name used when determining what socket to connect to. | |
| | | * It is used to generate the socket name when the socke | |
| | | t | |
| | | * is a Unix socket. It is used as the hostname when | |
| | | * connecting with a TCP socket. | |
| | | * @param port Number to identify the socket to connect to. Used wh | |
| | | en | |
| | | * generating the socket name for a Unix socket, or as t | |
| | | he | |
| | | * TCP port when connecting to a TCP socket. | |
| | | * @param data Data to associate with the created Ecore_Con_Server | |
| | | * object. | |
| | | * @return A new Ecore_Con_Server. | |
| | | * | |
| | | * The socket to which the connection is made depends on the connection typ | |
| | | e: | |
| | | * @li If @a type is @c ECORE_CON_LOCAL_USER, the function will | |
| | | * connect to the server at the Unix socket | |
| | | * "~/.ecore/[name]/[port]". | |
| | | * @li If @a type is @c ECORE_CON_LOCAL_SYSTEM, the function will | |
| | | * connect to the server at the Unix socket | |
| | | * "/tmp/.ecore_service|[name]|[port]". | |
| | | * @li If @a type is @c ECORE_CON_REMOTE_TCP, the function will | |
| | | * connect to the server at the TCP port "[name]:[port]". | |
| | | * | |
| | | * More information about the @p type can be found at @ref _Ecore_Con_Type. | |
| | | * | |
| | | * This function won't block. It will either succeed, or fail due to invali | |
| | | d | |
| | | * parameters, failed memory allocation, etc., returning @c NULL on that ca | |
| | | se. | |
| | | * | |
| | | * However, even if this call returns a valid @ref Ecore_Con_Server, the | |
| | | * connection will only be successfully completed if an event of type | |
| | | * #ECORE_CON_EVENT_SERVER_ADD is received. If it fails to complete, an | |
| | | * #ECORE_CON_EVENT_SERVER_DEL will be received. | |
| | | * | |
| | | * The @p data parameter can be fetched later using ecore_con_server_data_g | |
| | | et() | |
| | | * or changed with ecore_con_server_data_set(). | |
| | | */ | |
| EAPI Ecore_Con_Server *ecore_con_server_connect(Ecore_Con_Type type, | | EAPI Ecore_Con_Server *ecore_con_server_connect(Ecore_Con_Type type, | |
| const char *name, int port, | | const char *name, int port, | |
| const void *data); | | const void *data); | |
|
| | | /** | |
| | | * Closes the connection and frees the given server. | |
| | | * | |
| | | * @param svr The given server. | |
| | | * @return Data associated with the server when it was created. | |
| | | * | |
| | | * All the clients connected to this server will be disconnected. | |
| | | * | |
| | | * @see ecore_con_server_add, ecore_con_server_connect | |
| | | */ | |
| EAPI void * ecore_con_server_del(Ecore_Con_Server *svr); | | EAPI void * ecore_con_server_del(Ecore_Con_Server *svr); | |
|
| | | | |
| | | /** | |
| | | * Retrieves the data associated with the given server. | |
| | | * | |
| | | * @param svr The given server. | |
| | | * @return The associated data. | |
| | | * | |
| | | * @see ecore_con_server_data_set() | |
| | | */ | |
| EAPI void * ecore_con_server_data_get(Ecore_Con_Server *svr); | | EAPI void * ecore_con_server_data_get(Ecore_Con_Server *svr); | |
|
| | | /** | |
| | | * Sets the data associated with the given server. | |
| | | * | |
| | | * @param svr The given server. | |
| | | * @param data The data to associate with @p svr | |
| | | * @return The previously associated data, if any. | |
| | | * | |
| | | * @see ecore_con_server_data_get() | |
| | | */ | |
| EAPI void * ecore_con_server_data_set(Ecore_Con_Server *svr, | | EAPI void * ecore_con_server_data_set(Ecore_Con_Server *svr, | |
| void *data); | | void *data); | |
|
| | | /** | |
| | | * Retrieves whether the given server is currently connected. | |
| | | * | |
| | | * @param svr The given server. | |
| | | * @return #EINA_TRUE if the server is connected. #EINA_FALSE otherwise. | |
| | | */ | |
| EAPI Eina_Bool ecore_con_server_connected_get(Ecore_Con_Server *svr
); | | EAPI Eina_Bool ecore_con_server_connected_get(Ecore_Con_Server *svr
); | |
|
| EAPI Eina_List * ecore_con_server_clients_get(Ecore_Con_Server *svr); | | /** | |
| | | * Retrieves the current list of clients. | |
| | | * | |
| | | * @param svr The given server. | |
| | | * @return The list of clients on this server. | |
| | | * | |
| | | * Each node in the returned list points to an @ref Ecore_Con_Client. This | |
| | | list | |
| | | * cannot be modified or freed. It can also change if new clients are conne | |
| | | cted | |
| | | * or disconnected, and will become invalid when the server is deleted/free | |
| | | d. | |
| | | */ | |
| | | EAPI const Eina_List * ecore_con_server_clients_get(Ecore_Con_Server *svr); | |
| | | | |
| | | /** | |
| | | * Retrieves the name of server. | |
| | | * | |
| | | * @param svr The given server. | |
| | | * @return The name of the server. | |
| | | * | |
| | | * The name returned is the name used to connect on this server. | |
| | | */ | |
| EAPI const char * ecore_con_server_name_get(Ecore_Con_Server *svr); | | EAPI const char * ecore_con_server_name_get(Ecore_Con_Server *svr); | |
|
| | | | |
| | | /** | |
| | | * Retrieves the server port in use. | |
| | | * | |
| | | * @param svr The given server. | |
| | | * @return The server port in use. | |
| | | * | |
| | | * The port where the server is listening for connections. | |
| | | */ | |
| EAPI int ecore_con_server_port_get(Ecore_Con_Server *svr); | | EAPI int ecore_con_server_port_get(Ecore_Con_Server *svr); | |
|
| | | /** | |
| | | * @brief Check how long a server has been connected | |
| | | * | |
| | | * @param svr The server to check | |
| | | * @return The total time, in seconds, that the server has been | |
| | | * connected/running | |
| | | * | |
| | | * This function is used to find out the time that has been elapsed since | |
| | | * ecore_con_server_add() succeeded. | |
| | | */ | |
| EAPI double ecore_con_server_uptime_get(Ecore_Con_Server *svr); | | EAPI double ecore_con_server_uptime_get(Ecore_Con_Server *svr); | |
|
| | | /** | |
| | | * Sends the given data to the given server. | |
| | | * | |
| | | * @param svr The given server. | |
| | | * @param data The given data. | |
| | | * @param size Length of the data, in bytes, to send. | |
| | | * @return The number of bytes sent. @c 0 will be returned if there is an | |
| | | * error. | |
| | | * | |
| | | * This function will send the given data to the server as soon as the prog | |
| | | ram | |
| | | * is back to the main loop. Thus, this function returns immediately | |
| | | * (non-blocking). If the data needs to be sent @b now, call | |
| | | * ecore_con_server_flush() after this one. | |
| | | * | |
| | | * @see ecore_con_client_send() | |
| | | * @see ecore_con_server_flush() | |
| | | */ | |
| EAPI int ecore_con_server_send(Ecore_Con_Server *svr, | | EAPI int ecore_con_server_send(Ecore_Con_Server *svr, | |
| const void *data, | | const void *data, | |
| int size); | | int size); | |
|
| | | /** | |
| | | * Sets a limit on the number of clients that can be handled concurrently | |
| | | * by the given server, and a policy on what to do if excess clients try to | |
| | | * connect. | |
| | | * | |
| | | * @param svr The given server. | |
| | | * @param client_limit The maximum number of clients to handle | |
| | | * concurrently. -1 means unlimited (default). 0 | |
| | | * effectively disables the server. | |
| | | * @param reject_excess_clients Set to 1 to automatically disconnect | |
| | | * excess clients as soon as they connect if you are | |
| | | * already handling client_limit clients. Set to 0 | |
| | | * (default) to just hold off on the "accept()" | |
| | | * system call until the number of active clients | |
| | | * drops. This causes the kernel to queue up to 4096 | |
| | | * connections (or your kernel's limit, whichever is | |
| | | * lower). | |
| | | * | |
| | | * Beware that if you set this once ecore is already running, you may | |
| | | * already have pending CLIENT_ADD events in your event queue. Those | |
| | | * clients have already connected and will not be affected by this call. | |
| | | * Only clients subsequently trying to connect will be affected. | |
| | | */ | |
| EAPI void ecore_con_server_client_limit_set(Ecore_Con_Server *
svr, | | EAPI void ecore_con_server_client_limit_set(Ecore_Con_Server *
svr, | |
| int client_limit, | | int client_limit, | |
| char reject_excess
_clients); | | char reject_excess
_clients); | |
|
| | | /** | |
| | | * Gets the IP address of a server that has been connected to. | |
| | | * | |
| | | * @param svr The given server. | |
| | | * @return A pointer to an internal string that contains the IP address of | |
| | | * the connected server in the form "XXX.YYY.ZZZ.AAA" IP notation. | |
| | | * This string should not be modified or trusted to stay valid aft | |
| | | er | |
| | | * deletion for the @p svr object. If no IP is known NULL is retur | |
| | | ned. | |
| | | */ | |
| EAPI const char * ecore_con_server_ip_get(Ecore_Con_Server *svr); | | EAPI const char * ecore_con_server_ip_get(Ecore_Con_Server *svr); | |
|
| | | /** | |
| | | * Flushes all pending data to the given server. | |
| | | * | |
| | | * @param svr The given server. | |
| | | * | |
| | | * This function will block until all data is sent to the server. | |
| | | * | |
| | | * @see ecore_con_server_send() | |
| | | * @see ecore_con_client_flush() | |
| | | */ | |
| EAPI void ecore_con_server_flush(Ecore_Con_Server *svr); | | EAPI void ecore_con_server_flush(Ecore_Con_Server *svr); | |
|
| | | /** | |
| | | * Set the default time after which an inactive client will be disconnected | |
| | | * | |
| | | * @param svr The server object | |
| | | * @param timeout The timeout, in seconds, to disconnect after | |
| | | * | |
| | | * This function is used by the server to set the default idle timeout on | |
| | | * clients. If the any of the clients becomes idle for a time higher than t | |
| | | his | |
| | | * value, it will be disconnected. A value of < 1 disables the idle timeout | |
| | | . | |
| | | * | |
| | | * This timeout is not affected by the one set by | |
| | | * ecore_con_client_timeout_set(). A client will be disconnected whenever t | |
| | | he | |
| | | * client or the server timeout is reached. That means, the lower timeout v | |
| | | alue | |
| | | * will be used for that client if ecore_con_client_timeout_set() is used o | |
| | | n it. | |
| | | * | |
| | | * @see ecore_con_server_timeout_get() | |
| | | * @see ecore_con_client_timeout_set() | |
| | | */ | |
| EAPI void ecore_con_server_timeout_set(Ecore_Con_Server *svr,
double timeout); | | EAPI void ecore_con_server_timeout_set(Ecore_Con_Server *svr,
double timeout); | |
|
| | | /** | |
| | | * Get the default time after which an inactive client will be disconnected | |
| | | * | |
| | | * @param svr The server object | |
| | | * @return The timeout, in seconds, to disconnect after | |
| | | * | |
| | | * This function is used to get the idle timeout for clients. A value of < | |
| | | 1 | |
| | | * means the idle timeout is disabled. | |
| | | * | |
| | | * @see ecore_con_server_timeout_set() | |
| | | * @see ecore_con_client_timeout_get() | |
| | | */ | |
| EAPI double ecore_con_server_timeout_get(Ecore_Con_Server *svr); | | EAPI double ecore_con_server_timeout_get(Ecore_Con_Server *svr); | |
| | | | |
| /** | | /** | |
|
| | | * Get the fd that the server is connected to | |
| | | * | |
| | | * @param svr The server object | |
| | | * @return The fd, or -1 on failure | |
| | | * | |
| | | * This function returns the fd which is used by the underlying server conn | |
| | | ection. | |
| | | * It should not be tampered with unless you REALLY know what you are doing | |
| | | . | |
| | | * @note This function is only valid for servers created with ecore_con_ser | |
| | | ver_connect() | |
| | | * @warning Seriously. Don't use this unless you know what you are doing. | |
| | | * @since 1.1 | |
| | | */ | |
| | | EAPI int ecore_con_server_fd_get(Ecore_Con_Server *svr); | |
| | | | |
| | | /** | |
| | | * Get the fd that the client is connected to | |
| | | * | |
| | | * @param cl The client object | |
| | | * @return The fd, or -1 on failure | |
| | | * | |
| | | * This function returns the fd which is used by the underlying client conn | |
| | | ection. | |
| | | * It should not be tampered with unless you REALLY know what you are doing | |
| | | . | |
| | | * @since 1.1 | |
| | | */ | |
| | | EAPI int ecore_con_client_fd_get(Ecore_Con_Client *cl); | |
| | | /** | |
| * @} | | * @} | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * @defgroup Ecore_Con_Client_Group Ecore Connection Client Functions | | * @defgroup Ecore_Con_Client_Group Ecore Connection Client Functions | |
| * | | * | |
|
| | | * Functions to communicate with and/or set options on a client. | |
| | | * | |
| | | * This set of functions, as explained in @ref Ecore_Con_Server_Group, is u | |
| | | sed | |
| | | * to send data to a client, or to set options and get information about th | |
| | | is | |
| | | * client. Most of them should be used on the server, applied on the client | |
| | | * object. | |
| | | * | |
| | | * If you need to implement a client, the way to connect to a server is | |
| | | * described in @ref Ecore_Con_Server_Group. | |
| | | * | |
| | | * An example of usage of these functions can be found at: | |
| | | * @li @ref ecore_con_client_simple_example_c | |
| | | * | |
| * @{ | | * @{ | |
| */ | | */ | |
| | | | |
|
| | | /** | |
| | | * Sends the given data to the given client. | |
| | | * | |
| | | * @param cl The given client. | |
| | | * @param data The given data. | |
| | | * @param size Length of the data, in bytes, to send. | |
| | | * @return The number of bytes sent. @c 0 will be returned if there is an | |
| | | * error. | |
| | | * | |
| | | * This function will send the given data to the client as soon as the prog | |
| | | ram | |
| | | * is back to the main loop. Thus, this function returns immediately | |
| | | * (non-blocking). If the data needs to be sent @b now, call | |
| | | * ecore_con_client_flush() after this one. | |
| | | * | |
| | | * @see ecore_con_server_send() | |
| | | * @see ecore_con_client_flush() | |
| | | */ | |
| EAPI int ecore_con_client_send(Ecore_Con_Client *cl, | | EAPI int ecore_con_client_send(Ecore_Con_Client *cl, | |
| const void *data, | | const void *data, | |
| int size); | | int size); | |
|
| | | /** | |
| | | * Retrieves the server representing the socket the client has | |
| | | * connected to. | |
| | | * | |
| | | * @param cl The given client. | |
| | | * @return The server that the client connected to. | |
| | | */ | |
| EAPI Ecore_Con_Server *ecore_con_client_server_get(Ecore_Con_Client *cl); | | EAPI Ecore_Con_Server *ecore_con_client_server_get(Ecore_Con_Client *cl); | |
|
| | | /** | |
| | | * Closes the connection and frees memory allocated to the given client. | |
| | | * | |
| | | * @param cl The given client. | |
| | | * @return Data associated with the client. | |
| | | */ | |
| EAPI void * ecore_con_client_del(Ecore_Con_Client *cl); | | EAPI void * ecore_con_client_del(Ecore_Con_Client *cl); | |
|
| | | /** | |
| | | * Sets the data associated with the given client to @p data. | |
| | | * | |
| | | * @param cl The given client. | |
| | | * @param data What to set the data to. | |
| | | */ | |
| EAPI void ecore_con_client_data_set(Ecore_Con_Client *cl, | | EAPI void ecore_con_client_data_set(Ecore_Con_Client *cl, | |
|
| const void *data); | | const void *data); | |
| | | /** | |
| | | * Retrieves the data associated with the given client. | |
| | | * | |
| | | * @param cl The given client. | |
| | | * @return The data associated with @p cl. | |
| | | */ | |
| EAPI void * ecore_con_client_data_get(Ecore_Con_Client *cl); | | EAPI void * ecore_con_client_data_get(Ecore_Con_Client *cl); | |
|
| | | | |
| | | /** | |
| | | * Gets the IP address of a client that has connected. | |
| | | * | |
| | | * @param cl The given client. | |
| | | * @return A pointer to an internal string that contains the IP address of | |
| | | * the connected client in the form "XXX.YYY.ZZZ.AAA" IP notation. | |
| | | * | |
| | | * The returned string should not be modified, freed or trusted to stay val | |
| | | id | |
| | | * after deletion for the @p cl object. If no IP is known NULL is returned. | |
| | | */ | |
| EAPI const char * ecore_con_client_ip_get(Ecore_Con_Client *cl); | | EAPI const char * ecore_con_client_ip_get(Ecore_Con_Client *cl); | |
|
| | | /** | |
| | | * Flushes all pending data to the given client. | |
| | | * | |
| | | * @param cl The given client. | |
| | | * | |
| | | * This function will block until all data is sent to the server. | |
| | | * | |
| | | * @see ecore_con_client_send() | |
| | | * @see ecore_con_server_flush() | |
| | | */ | |
| EAPI void ecore_con_client_flush(Ecore_Con_Client *cl); | | EAPI void ecore_con_client_flush(Ecore_Con_Client *cl); | |
|
| | | /** | |
| | | * @brief Check how long a client has been connected | |
| | | * | |
| | | * @param cl The client to check | |
| | | * @return The total time, in seconds, that the client has been connected t | |
| | | o | |
| | | * the server | |
| | | * | |
| | | * This function is used to find out how long a client has been connected f | |
| | | or. | |
| | | */ | |
| EAPI double ecore_con_client_uptime_get(Ecore_Con_Client *cl); | | EAPI double ecore_con_client_uptime_get(Ecore_Con_Client *cl); | |
|
| | | /** | |
| | | * Get the default time after which the client will be disconnected when | |
| | | * inactive | |
| | | * | |
| | | * @param cl The client object | |
| | | * @return The timeout, in seconds, to disconnect after | |
| | | * | |
| | | * This function is used to get the idle timeout for a client. A value of | |
| | | < 1 | |
| | | * means the idle timeout is disabled. | |
| | | * | |
| | | * @see ecore_con_client_timeout_set() | |
| | | */ | |
| EAPI double ecore_con_client_timeout_get(Ecore_Con_Client *cl); | | EAPI double ecore_con_client_timeout_get(Ecore_Con_Client *cl); | |
|
| | | /** | |
| | | * Set the time after which the client will be disconnected when inactive | |
| | | * | |
| | | * @param cl The client object | |
| | | * @param timeout The timeout, in seconds, to disconnect after | |
| | | * | |
| | | * This function is used by the server to set the idle timeout on a specifi | |
| | | c | |
| | | * client. If the client becomes idle for a time higher than this value, it | |
| | | will | |
| | | * be disconnected. A value of < 1 disables the idle timeout. | |
| | | * | |
| | | * This timeout is not affected by the one set by | |
| | | * ecore_con_server_timeout_set(). A client will be disconnected whenever t | |
| | | he | |
| | | * client or the server timeout is reached. That means, the lower timeout v | |
| | | alue | |
| | | * will be used for that client if ecore_con_server_timeout_set() is used o | |
| | | n the | |
| | | * server. | |
| | | * | |
| | | * @see ecore_con_client_timeout_get() | |
| | | * @see ecore_con_server_timeout_set() | |
| | | */ | |
| EAPI void ecore_con_client_timeout_set(Ecore_Con_Client *cl, d
ouble timeout); | | EAPI void ecore_con_client_timeout_set(Ecore_Con_Client *cl, d
ouble timeout); | |
|
| | | /** | |
| | | * Returns whether the client is still connected | |
| | | * | |
| | | * @param cl The given client. | |
| | | * @return #EINA_TRUE if connected, else EINA_FALSE | |
| | | */ | |
| EAPI Eina_Bool ecore_con_client_connected_get(Ecore_Con_Client *cl)
; | | EAPI Eina_Bool ecore_con_client_connected_get(Ecore_Con_Client *cl)
; | |
|
| | | /** | |
| | | * @brief Return the port that the client has connected to | |
| | | * | |
| | | * @param cl The client | |
| | | * @return The port that @p cl has connected to, or -1 on error | |
| | | * Use this function to return the port on which a given client has connect | |
| | | ed. | |
| | | */ | |
| | | EAPI int ecore_con_client_port_get(Ecore_Con_Client *cl); | |
| | | | |
| /** | | /** | |
| * @} | | * @} | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * @defgroup Ecore_Con_Url_Group Ecore URL Connection Functions | | * @defgroup Ecore_Con_Url_Group Ecore URL Connection Functions | |
| * | | * | |
|
| | | * Utility functions that set up, use and shut down the Ecore URL | |
| | | * Connection library. | |
| | | * | |
| | | * These functions are a shortcut to make it easy to perform http requests | |
| | | * (POST, GET, etc). | |
| | | * | |
| | | * Brief usage: | |
| | | * 1. Create an Ecore_Con_Url object with ecore_con_url_new(url); | |
| | | * 2. Register to receive the #ECORE_CON_EVENT_URL_COMPLETE event | |
| | | * (and optionally the #ECORE_CON_EVENT_URL_DATA and | |
| | | * #ECORE_CON_EVENT_URL_PROGRESS event to receive | |
| | | * the response, e.g. for HTTP/FTP downloads) | |
| | | * 3. Perform the operation with ecore_con_url_get(...); | |
| | | * | |
| | | * Note that it is good to reuse @ref Ecore_Con_Url objects wherever possib | |
| | | le, | |
| | | * but bear in mind that each one can only perform one operation at a time. | |
| | | You | |
| | | * need to wait for the #ECORE_CON_EVENT_URL_COMPLETE event before re-using | |
| | | or | |
| | | * destroying the object. | |
| | | * | |
| | | * If it's necessary to change the @ref Ecore_Con_Url object url, use | |
| | | * ecore_con_url_url_set(). | |
| | | * | |
| | | * Simple Usage 1 (HTTP GET): | |
| | | * @code | |
| | | * ecore_con_url_url_set(url_con, "http://www.google.com"); | |
| | | * ecore_con_url_get(url_con); | |
| | | * @endcode | |
| | | * | |
| | | * Simple usage 2 (HTTP POST): | |
| | | * @code | |
| | | * ecore_con_url_url_set(url_con, "http://www.example.com/post_handler.cg | |
| | | i"); | |
| | | * ecore_con_url_post(url_con, data, data_length, "multipart/form-data"); | |
| | | * @endcode | |
| | | * | |
| | | * Simple Usage 3 (FTP download): | |
| | | * @code | |
| | | * fd = creat(filename, 0644) | |
| | | * ecore_con_url_url_set(url_con, "ftp://ftp.example.com/pub/myfile"); | |
| | | * ecore_con_url_fd_set(url_con, fd); | |
| | | * ecore_con_url_get(url_con); | |
| | | * @endcode | |
| | | * | |
| | | * Simple Usage 4 (FTP upload as ftp://ftp.example.com/file): | |
| | | * @code | |
| | | * ecore_con_url_url_set(url_con, "ftp://ftp.example.com"); | |
| | | * ecore_con_url_ftp_upload(url_con, "/tmp/file", "user", "pass", NULL); | |
| | | * @endcode | |
| | | * | |
| | | * Simple Usage 5 (FTP upload as ftp://ftp.example.com/dir/file): | |
| | | * @code | |
| | | * ecore_con_url_url_set(url_con, "ftp://ftp.example.com"); | |
| | | * ecore_con_url_ftp_upload(url_con, "/tmp/file", "user", "pass","dir"); | |
| | | * @endcode | |
| | | * | |
| | | * These are complete examples for the API: | |
| | | * @li @ref ecore_con_url_download_example.c "Downloading a file" | |
| | | * @li @ref ecore_con_url_headers_example.c "Setting many options for the | |
| | | * connection" | |
| | | * | |
| * @{ | | * @{ | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * @typedef Ecore_Con_Url_Time | | * @typedef Ecore_Con_Url_Time | |
| * @enum _Ecore_Con_Url_Time | | * @enum _Ecore_Con_Url_Time | |
| * The type of condition to use when making an HTTP request dependent on ti
me, | | * The type of condition to use when making an HTTP request dependent on ti
me, | |
| * so that headers such as "If-Modified-Since" are used. | | * so that headers such as "If-Modified-Since" are used. | |
| */ | | */ | |
| typedef enum _Ecore_Con_Url_Time | | typedef enum _Ecore_Con_Url_Time | |
| | | | |
| skipping to change at line 486 | | skipping to change at line 1280 | |
| */ | | */ | |
| ECORE_CON_URL_TIME_IFMODSINCE, | | ECORE_CON_URL_TIME_IFMODSINCE, | |
| /** | | /** | |
| * Add the "If-Unmodified-Since" HTTP header, so that the request is | | * Add the "If-Unmodified-Since" HTTP header, so that the request is | |
| * performed by the server only if the target has NOT been modified sinc
e | | * performed by the server only if the target has NOT been modified sinc
e | |
| * the time value passed to it in the request. | | * the time value passed to it in the request. | |
| */ | | */ | |
| ECORE_CON_URL_TIME_IFUNMODSINCE | | ECORE_CON_URL_TIME_IFUNMODSINCE | |
| } Ecore_Con_Url_Time; | | } Ecore_Con_Url_Time; | |
| | | | |
|
| | | /** | |
| | | * Initialises the Ecore_Con_Url library. | |
| | | * @return Number of times the library has been initialised without being | |
| | | * shut down. | |
| | | * | |
| | | * @note This function doesn't call ecore_con_init(). You still need to cal | |
| | | l it | |
| | | * explicitly before calling this one. | |
| | | */ | |
| EAPI int ecore_con_url_init(void); | | EAPI int ecore_con_url_init(void); | |
|
| | | | |
| | | /** | |
| | | * Shuts down the Ecore_Con_Url library. | |
| | | * @return Number of calls that still uses Ecore_Con_Url | |
| | | * | |
| | | * @note This function doesn't call ecore_con_shutdown(). You still need to | |
| | | call | |
| | | * it explicitly after calling this one. | |
| | | */ | |
| EAPI int ecore_con_url_shutdown(void); | | EAPI int ecore_con_url_shutdown(void); | |
|
| | | | |
| | | /** | |
| | | * Enable or disable HTTP 1.1 pipelining. | |
| | | * @param enable EINA_TRUE will turn it on, EINA_FALSE will disable it. | |
| | | * | |
| | | * Pipelining allows to send one request after another one, without having | |
| | | to | |
| | | * wait for the reply of the first request. The respective replies are rece | |
| | | ived | |
| | | * in the order that the requests were sent. | |
| | | * | |
| | | * Enabling this feature will be valid for all requests done using @c | |
| | | * ecore_con_url. | |
| | | * | |
| | | * See http://en.wikipedia.org/wiki/HTTP_pipelining for more info. | |
| | | * | |
| | | * @see ecore_con_url_pipeline_get() | |
| | | */ | |
| | | EAPI void ecore_con_url_pipeline_set(Eina_Bool enable); | |
| | | /** | |
| | | * Is HTTP 1.1 pipelining enable ? | |
| | | * @return EINA_TRUE if it is enable. | |
| | | * | |
| | | * @see ecore_con_url_pipeline_set() | |
| | | */ | |
| | | EAPI Eina_Bool ecore_con_url_pipeline_get(void); | |
| | | | |
| | | /** | |
| | | * Creates and initializes a new Ecore_Con_Url connection object. | |
| | | * | |
| | | * @param url URL that will receive requests. Can be changed using | |
| | | * ecore_con_url_url_set. | |
| | | * | |
| | | * @return NULL on error, a new Ecore_Con_Url on success. | |
| | | * | |
| | | * Creates and initializes a new Ecore_Con_Url connection object that can b | |
| | | e | |
| | | * used for sending requests. | |
| | | * | |
| | | * @see ecore_con_url_custom_new() | |
| | | * @see ecore_con_url_url_set() | |
| | | */ | |
| EAPI Ecore_Con_Url * ecore_con_url_new(const char *url); | | EAPI Ecore_Con_Url * ecore_con_url_new(const char *url); | |
|
| | | /** | |
| | | * Creates a custom connection object. | |
| | | * | |
| | | * @param url URL that will receive requests | |
| | | * @param custom_request Custom request (e.g. GET, POST, HEAD, PUT, etc) | |
| | | * | |
| | | * @return NULL on error, a new Ecore_Con_Url on success. | |
| | | * | |
| | | * Creates and initializes a new Ecore_Con_Url for a custom request (e.g. H | |
| | | EAD, | |
| | | * SUBSCRIBE and other obscure HTTP requests). This object should be used l | |
| | | ike | |
| | | * one created with ecore_con_url_new(). | |
| | | * | |
| | | * @see ecore_con_url_new() | |
| | | * @see ecore_con_url_url_set() | |
| | | */ | |
| EAPI Ecore_Con_Url * ecore_con_url_custom_new(const char *url, | | EAPI Ecore_Con_Url * ecore_con_url_custom_new(const char *url, | |
| const char *custom_request)
; | | const char *custom_request)
; | |
|
| | | /** | |
| | | * Destroys a Ecore_Con_Url connection object. | |
| | | * | |
| | | * @param url_con Connection object to free. | |
| | | * | |
| | | * @see ecore_con_url_new() | |
| | | */ | |
| EAPI void ecore_con_url_free(Ecore_Con_Url *url_con); | | EAPI void ecore_con_url_free(Ecore_Con_Url *url_con); | |
|
| | | /** | |
| | | * Sets the URL to send the request to. | |
| | | * | |
| | | * @param url_con Connection object through which the request will be sent. | |
| | | * @param url URL that will receive the request | |
| | | * | |
| | | * @return EINA_TRUE on success, EINA_FALSE on error. | |
| | | * | |
| | | */ | |
| EAPI Eina_Bool ecore_con_url_url_set(Ecore_Con_Url *url_con, | | EAPI Eina_Bool ecore_con_url_url_set(Ecore_Con_Url *url_con, | |
| const char *url); | | const char *url); | |
|
| | | /** | |
| | | * Gets the URL to send the request to. | |
| | | * | |
| | | * @param url_con Connection object through which the request will be sent. | |
| | | * @return URL that will receive the request, NULL on failure. URL is strin | |
| | | gshared. | |
| | | * @since 1.1 | |
| | | */ | |
| | | EAPI const char *ecore_con_url_url_get(Ecore_Con_Url *url_con); | |
| | | /** | |
| | | * Associates data with a connection object. | |
| | | * | |
| | | * @param url_con Connection object to associate data. | |
| | | * @param data Data to be set. | |
| | | * | |
| | | * Associates data with a connection object, which can be retrieved later w | |
| | | ith | |
| | | * ecore_con_url_data_get()). | |
| | | * | |
| | | * @see ecore_con_url_data_get() | |
| | | */ | |
| EAPI void ecore_con_url_data_set(Ecore_Con_Url *url_con, | | EAPI void ecore_con_url_data_set(Ecore_Con_Url *url_con, | |
| void *data); | | void *data); | |
|
| | | /** | |
| | | * Retrieves data associated with a Ecore_Con_Url connection object. | |
| | | * | |
| | | * @param url_con Connection object to retrieve data from. | |
| | | * | |
| | | * @return Data associated with the given object. | |
| | | * | |
| | | * Retrieves data associated with a Ecore_Con_Url connection object (previo | |
| | | usly | |
| | | * set with ecore_con_url_data_set()). | |
| | | * | |
| | | * @see ecore_con_url_data_set() | |
| | | */ | |
| EAPI void * ecore_con_url_data_get(Ecore_Con_Url *url_con); | | EAPI void * ecore_con_url_data_get(Ecore_Con_Url *url_con); | |
|
| | | /** | |
| | | * Adds an additional header to the request connection object. | |
| | | * | |
| | | * @param url_con Connection object | |
| | | * @param key Header key | |
| | | * @param value Header value | |
| | | * | |
| | | * Adds an additional header (User-Agent, Content-Type, etc.) to the reques | |
| | | t | |
| | | * connection object. This addition will be valid for only one | |
| | | * ecore_con_url_get() or ecore_con_url_post() call. | |
| | | * | |
| | | * Some functions like ecore_con_url_time() also add headers to the request | |
| | | . | |
| | | * | |
| | | * @see ecore_con_url_get() | |
| | | * @see ecore_con_url_post() | |
| | | * @see ecore_con_url_additional_headers_clear() | |
| | | */ | |
| EAPI void ecore_con_url_additional_header_add(Ecore_Con_Url *u
rl_con, | | EAPI void ecore_con_url_additional_header_add(Ecore_Con_Url *u
rl_con, | |
| const char *key, | | const char *key, | |
| const char *valu
e); | | const char *valu
e); | |
|
| | | /** | |
| | | * Cleans additional headers. | |
| | | * | |
| | | * @param url_con Connection object to clean additional headers. | |
| | | * | |
| | | * Cleans additional headers associated with a connection object (previousl | |
| | | y | |
| | | * added with ecore_con_url_additional_header_add()). | |
| | | * | |
| | | * @see ecore_con_url_additional_header_add() | |
| | | * @see ecore_con_url_get() | |
| | | * @see ecore_con_url_post() | |
| | | */ | |
| EAPI void ecore_con_url_additional_headers_clear(Ecore_Con_Url
*url_con); | | EAPI void ecore_con_url_additional_headers_clear(Ecore_Con_Url
*url_con); | |
|
| | | /** | |
| | | * Retrieves headers from last request sent. | |
| | | * | |
| | | * @param url_con Connection object to retrieve response headers from. | |
| | | * | |
| | | * Retrieves a list containing the response headers. This function should b | |
| | | e | |
| | | * used after an ECORE_CON_EVENT_URL_COMPLETE event (headers should normall | |
| | | y be | |
| | | * ready at that time). | |
| | | * | |
| | | * @return List of response headers. This list must not be modified by the | |
| | | user. | |
| | | */ | |
| EAPI const Eina_List * ecore_con_url_response_headers_get(Ecore_Con_Url *ur
l_con); | | EAPI const Eina_List * ecore_con_url_response_headers_get(Ecore_Con_Url *ur
l_con); | |
|
| | | /** | |
| | | * Setup a file for receiving response data. | |
| | | * | |
| | | * @param url_con Connection object to set file | |
| | | * @param fd File descriptor associated with the file. A negative value wil | |
| | | l | |
| | | * unset any previously set fd. | |
| | | * | |
| | | * Sets up a file to have response data written into. Note that | |
| | | * ECORE_CON_EVENT_URL_DATA events will not be emitted if a file has been s | |
| | | et to | |
| | | * receive the response data. | |
| | | * | |
| | | * This call can be used to easily setup a file where the downloaded data w | |
| | | ill | |
| | | * be saved. | |
| | | */ | |
| EAPI void ecore_con_url_fd_set(Ecore_Con_Url *url_con, int fd)
; | | EAPI void ecore_con_url_fd_set(Ecore_Con_Url *url_con, int fd)
; | |
|
| | | /** | |
| | | * Retrieves the number of bytes received. | |
| | | * | |
| | | * Retrieves the number of bytes received on the last request of the given | |
| | | * connection object. | |
| | | * | |
| | | * @param url_con Connection object which the request was sent on. | |
| | | * | |
| | | * @return Number of bytes received on request. | |
| | | * | |
| | | * @see ecore_con_url_get() | |
| | | * @see ecore_con_url_post() | |
| | | */ | |
| EAPI int ecore_con_url_received_bytes_get(Ecore_Con_Url *url_
con); | | EAPI int ecore_con_url_received_bytes_get(Ecore_Con_Url *url_
con); | |
|
| | | /** | |
| | | * Sets url_con to use http auth, with given username and password, "safely | |
| | | " or not. | |
| | | * | |
| | | * @param url_con Connection object to perform a request on, previously cre | |
| | | ated | |
| | | * with ecore_con_url_new() or ecore_con_url_custom_new(). | |
| | | * @param username Username to use in authentication | |
| | | * @param password Password to use in authentication | |
| | | * @param safe Whether to use "safer" methods (eg, NOT http basic auth) | |
| | | * | |
| | | * @return #EINA_TRUE on success, #EINA_FALSE on error. | |
| | | * | |
| | | * ATTENTION: requires libcurl >= 7.19.1 to work, otherwise will always ret | |
| | | urn 0. | |
| | | */ | |
| EAPI Eina_Bool ecore_con_url_httpauth_set(Ecore_Con_Url *url_con, | | EAPI Eina_Bool ecore_con_url_httpauth_set(Ecore_Con_Url *url_con, | |
| const char *username, | | const char *username, | |
| const char *password, | | const char *password, | |
| Eina_Bool safe); | | Eina_Bool safe); | |
|
| | | /** | |
| | | * Sends a request. | |
| | | * | |
| | | * @param url_con Connection object to perform a request on, previously cre | |
| | | ated | |
| | | * with ecore_con_url_new() or ecore_con_url_custom_new(). | |
| | | * @param data Payload (data sent on the request) | |
| | | * @param length Payload length. If @c -1, rely on automatic length | |
| | | * calculation via @c strlen() on @p data. | |
| | | * @param content_type Content type of the payload (e.g. text/xml) | |
| | | * | |
| | | * @return #EINA_TRUE on success, #EINA_FALSE on error. | |
| | | * | |
| | | * @see ecore_con_url_custom_new() | |
| | | * @see ecore_con_url_additional_headers_clear() | |
| | | * @see ecore_con_url_additional_header_add() | |
| | | * @see ecore_con_url_data_set() | |
| | | * @see ecore_con_url_data_get() | |
| | | * @see ecore_con_url_response_headers_get() | |
| | | * @see ecore_con_url_time() | |
| | | * @see ecore_con_url_get() | |
| | | * @see ecore_con_url_post() | |
| | | * | |
| | | * @deprecated Use ecore_con_url_post() instead of this. | |
| | | */ | |
| EINA_DEPRECATED EAPI Eina_Bool ecore_con_url_send(Ecore_Con_Url *ur
l_con, | | EINA_DEPRECATED EAPI Eina_Bool ecore_con_url_send(Ecore_Con_Url *ur
l_con, | |
| const void *data,
long length, | | const void *data,
long length, | |
| const char *conte
nt_type); | | const char *conte
nt_type); | |
|
| | | /** | |
| | | * Sends a get request. | |
| | | * | |
| | | * @param url_con Connection object to perform a request on, previously cre | |
| | | ated | |
| | | * | |
| | | * @return #EINA_TRUE on success, #EINA_FALSE on error. | |
| | | * | |
| | | * The request is performed immediately, but you need to setup event handle | |
| | | rs | |
| | | * for #ECORE_CON_EVENT_URL_DATA, #ECORE_CON_EVENT_URL_COMPLETE or | |
| | | * #ECORE_CON_EVENT_URL_PROGRESS to get more information about its result. | |
| | | * | |
| | | * @see ecore_con_url_custom_new() | |
| | | * @see ecore_con_url_additional_headers_clear() | |
| | | * @see ecore_con_url_additional_header_add() | |
| | | * @see ecore_con_url_data_set() | |
| | | * @see ecore_con_url_data_get() | |
| | | * @see ecore_con_url_response_headers_get() | |
| | | * @see ecore_con_url_time() | |
| | | * @see ecore_con_url_post() | |
| | | */ | |
| EAPI Eina_Bool ecore_con_url_get(Ecore_Con_Url *url_con); | | EAPI Eina_Bool ecore_con_url_get(Ecore_Con_Url *url_con); | |
|
| | | /** | |
| | | * Sends a post request. | |
| | | * | |
| | | * @param url_con Connection object to perform a request on, previously cre | |
| | | ated | |
| | | * with ecore_con_url_new() or ecore_con_url_custom_new(). | |
| | | * @param data Payload (data sent on the request). Can be @c NULL. | |
| | | * @param length Payload length. If @c -1, rely on automatic length | |
| | | * calculation via @c strlen() on @p data. | |
| | | * @param content_type Content type of the payload (e.g. text/xml). Can be | |
| | | @c | |
| | | * NULL. | |
| | | * | |
| | | * @return #EINA_TRUE on success, #EINA_FALSE on error. | |
| | | * | |
| | | * The request starts immediately, but you need to setup event handlers | |
| | | * for #ECORE_CON_EVENT_URL_DATA, #ECORE_CON_EVENT_URL_COMPLETE or | |
| | | * #ECORE_CON_EVENT_URL_PROGRESS to get more information about its result. | |
| | | * | |
| | | * This call won't block your main loop. | |
| | | * | |
| | | * @see ecore_con_url_custom_new() | |
| | | * @see ecore_con_url_additional_headers_clear() | |
| | | * @see ecore_con_url_additional_header_add() | |
| | | * @see ecore_con_url_data_set() | |
| | | * @see ecore_con_url_data_get() | |
| | | * @see ecore_con_url_response_headers_get() | |
| | | * @see ecore_con_url_time() | |
| | | * @see ecore_con_url_get() | |
| | | */ | |
| EAPI Eina_Bool ecore_con_url_post(Ecore_Con_Url *url_con, | | EAPI Eina_Bool ecore_con_url_post(Ecore_Con_Url *url_con, | |
| const void *data, long length, | | const void *data, long length, | |
| const char *content_type); | | const char *content_type); | |
|
| | | /** | |
| | | * Sets whether HTTP requests should be conditional, dependent on | |
| | | * modification time. | |
| | | * | |
| | | * @param url_con Ecore_Con_Url to act upon. | |
| | | * @param condition Condition to use for HTTP requests. | |
| | | * @param timestamp Time since 1 Jan 1970 to use in the condition. | |
| | | * | |
| | | * This function may set the header "If-Modified-Since" or | |
| | | * "If-Unmodified-Since", depending on the value of @p time_condition, with | |
| | | the | |
| | | * value @p timestamp. | |
| | | * | |
| | | * @sa ecore_con_url_get() | |
| | | * @sa ecore_con_url_post() | |
| | | */ | |
| EAPI void ecore_con_url_time(Ecore_Con_Url *url_con, | | EAPI void ecore_con_url_time(Ecore_Con_Url *url_con, | |
| Ecore_Con_Url_Time time_condition
, | | Ecore_Con_Url_Time time_condition
, | |
| double timestamp); | | double timestamp); | |
| | | | |
|
| | | /** | |
| | | * @brief Uploads a file to an ftp site. | |
| | | * @param url_con The Ecore_Con_Url object to send with | |
| | | * @param filename The path to the file to send | |
| | | * @param user The username to log in with | |
| | | * @param pass The password to log in with | |
| | | * @param upload_dir The directory to which the file should be uploaded | |
| | | * @return #EINA_TRUE on success, else #EINA_FALSE. | |
| | | * Upload @p filename to an ftp server set in @p url_con using @p user | |
| | | * and @p pass to directory @p upload_dir | |
| | | */ | |
| EAPI Eina_Bool ecore_con_url_ftp_upload(Ecore_Con_Url *url_con, | | EAPI Eina_Bool ecore_con_url_ftp_upload(Ecore_Con_Url *url_con, | |
| const char *filename, | | const char *filename, | |
| const char *user, | | const char *user, | |
| const char *pass, | | const char *pass, | |
| const char *upload_dir); | | const char *upload_dir); | |
|
| | | /** | |
| | | * Toggle libcurl's verbose output. | |
| | | * | |
| | | * @param url_con Ecore_Con_Url instance which will be acted upon. | |
| | | * @param verbose Whether or not to enable libcurl's verbose output. | |
| | | * | |
| | | * If @p verbose is @c EINA_TRUE, libcurl will output a lot of verbose | |
| | | * information about its operations, which is useful for | |
| | | * debugging. The verbose information will be sent to stderr. | |
| | | */ | |
| EAPI void ecore_con_url_verbose_set(Ecore_Con_Url *url_con, | | EAPI void ecore_con_url_verbose_set(Ecore_Con_Url *url_con, | |
| Eina_Bool verbose); | | Eina_Bool verbose); | |
|
| | | /** | |
| | | * Enable or disable EPSV extension | |
| | | * @return FIXME: To be more documented. | |
| | | */ | |
| EAPI void ecore_con_url_ftp_use_epsv_set(Ecore_Con_Url *url_co
n, | | EAPI void ecore_con_url_ftp_use_epsv_set(Ecore_Con_Url *url_co
n, | |
| Eina_Bool use_epsv); | | Eina_Bool use_epsv); | |
| | | | |
|
| | | /** | |
| | | * Enables the cookie engine for subsequent HTTP requests. | |
| | | * | |
| | | * @param url_con Ecore_Con_Url instance which will be acted upon. | |
| | | * | |
| | | * After this function is called, cookies set by the server in HTTP respons | |
| | | es | |
| | | * will be parsed and stored, as well as sent back to the server in new HTT | |
| | | P | |
| | | * requests. | |
| | | * | |
| | | * @note Even though this function is called @c ecore_con_url_cookies_init( | |
| | | ), | |
| | | * there is no symmetrical shutdown operation. | |
| | | */ | |
| EAPI void ecore_con_url_cookies_init(Ecore_Con_Url *url_con); | | EAPI void ecore_con_url_cookies_init(Ecore_Con_Url *url_con); | |
|
| | | /** | |
| | | * Controls whether session cookies from previous sessions shall be loaded. | |
| | | * | |
| | | * @param url_con Ecore_Con_Url instance which will be acted upon. | |
| | | * @param ignore If @c EINA_TRUE, ignore session cookies when loading cook | |
| | | ies | |
| | | * from files. If @c EINA_FALSE, all cookies will be loaded. | |
| | | * | |
| | | * Session cookies are cookies with no expire date set, which usually means | |
| | | * they are removed after the current session is closed. | |
| | | * | |
| | | * By default, when Ecore_Con_Url loads cookies from a file, all cookies ar | |
| | | e | |
| | | * loaded, including session cookies, which, most of the time, were suppose | |
| | | d | |
| | | * to be loaded and valid only for that session. | |
| | | * | |
| | | * If @p ignore is set to @c EINA_TRUE, when Ecore_Con_Url loads cookies fr | |
| | | om | |
| | | * the files passed to @c ecore_con_url_cookies_file_add(), session cookies | |
| | | * will not be loaded. | |
| | | * | |
| | | * @see ecore_con_url_cookies_file_add() | |
| | | */ | |
| EAPI void ecore_con_url_cookies_ignore_old_session_set(Ecore_C
on_Url *url_con, | | EAPI void ecore_con_url_cookies_ignore_old_session_set(Ecore_C
on_Url *url_con, | |
| Eina_Bo
ol ignore); | | Eina_Bo
ol ignore); | |
|
| | | /** | |
| | | * Clears currently loaded cookies. | |
| | | * @param url_con Ecore_Con_Url instance which will be acted upon. | |
| | | * | |
| | | * The cleared cookies are removed and will not be sent in subsequent HTTP | |
| | | * requests, nor will they be written to the cookiejar file set via | |
| | | * @c ecore_con_url_cookies_jar_file_set(). | |
| | | * | |
| | | * @note This function will initialize the cookie engine if it has not been | |
| | | * initialized yet. | |
| | | * @note The cookie files set by ecore_con_url_cookies_file_add() aren't lo | |
| | | aded | |
| | | * immediately, just when the request is started. Thus, if you ask to | |
| | | * clear the cookies, but has a file already set by that function, th | |
| | | e | |
| | | * cookies will then be loaded and you will have old cookies set. In | |
| | | order | |
| | | * to don't have any old cookie set, you need to don't call | |
| | | * ecore_con_url_cookies_file_add() ever on the @p url_con handler, a | |
| | | nd | |
| | | * call this function to clear any cookie set by a previous request o | |
| | | n | |
| | | * this handler. | |
| | | * | |
| | | * @see ecore_con_url_cookies_session_clear() | |
| | | * @see ecore_con_url_cookies_ignore_old_session_set() | |
| | | */ | |
| EAPI void ecore_con_url_cookies_clear(Ecore_Con_Url *url_con); | | EAPI void ecore_con_url_cookies_clear(Ecore_Con_Url *url_con); | |
|
| | | /** | |
| | | * Clears currently loaded session cookies. | |
| | | * | |
| | | * @param url_con Ecore_Con_Url instance which will be acted upon. | |
| | | * | |
| | | * Session cookies are cookies with no expire date set, which usually means | |
| | | * they are removed after the current session is closed. | |
| | | * | |
| | | * The cleared cookies are removed and will not be sent in subsequent HTTP | |
| | | * requests, nor will they be written to the cookiejar file set via | |
| | | * @c ecore_con_url_cookies_jar_file_set(). | |
| | | * | |
| | | * @note This function will initialize the cookie engine if it has not been | |
| | | * initialized yet. | |
| | | * @note The cookie files set by ecore_con_url_cookies_file_add() aren't lo | |
| | | aded | |
| | | * immediately, just when the request is started. Thus, if you ask to | |
| | | * clear the session cookies, but has a file already set by that func | |
| | | tion, | |
| | | * the session cookies will then be loaded and you will have old cook | |
| | | ies | |
| | | * set. In order to don't have any old session cookie set, you need | |
| | | to | |
| | | * don't call ecore_con_url_cookies_file_add() ever on the @p url_con | |
| | | * handler, and call this function to clear any session cookie set by | |
| | | a | |
| | | * previous request on this handler. An easier way to don't use old | |
| | | * session cookies is by using the function | |
| | | * ecore_con_url_cookies_ignore_old_session_set(). | |
| | | * | |
| | | * @see ecore_con_url_cookies_clear() | |
| | | * @see ecore_con_url_cookies_ignore_old_session_set() | |
| | | */ | |
| EAPI void ecore_con_url_cookies_session_clear(Ecore_Con_Url *u
rl_con); | | EAPI void ecore_con_url_cookies_session_clear(Ecore_Con_Url *u
rl_con); | |
|
| | | /** | |
| | | * Adds a file to the list of files from which to load cookies. | |
| | | * | |
| | | * @param url_con Ecore_Con_Url instance which will be acted upon. | |
| | | * @param file_name Name of the file that will be added to the list. | |
| | | * | |
| | | * Files must contain cookies defined according to two possible formats: | |
| | | * | |
| | | * @li HTTP-style header ("Set-Cookie: ..."). | |
| | | * @li <a href="http://www.cookiecentral.com/faq/#3.5">Netscape/Mozilla coo | |
| | | kie data format.</a> | |
| | | * | |
| | | * Cookies will only be @b read from this file. If you want to save cookies | |
| | | to a | |
| | | * file, use ecore_con_url_cookies_jar_file_set(). Also notice that this | |
| | | * function supports the both types of cookie file cited above, while | |
| | | * ecore_con_url_cookies_jar_file_set() will save only in the Netscape/Mozi | |
| | | lla's | |
| | | * format. | |
| | | * | |
| | | * Please notice that the file will not be read immediately, but rather add | |
| | | ed | |
| | | * to a list of files that will be loaded and parsed at a later time. | |
| | | * | |
| | | * @note This function will initialize the cookie engine if it has not been | |
| | | * initialized yet. | |
| | | * | |
| | | * @see ecore_con_url_cookies_ignore_old_session_set() | |
| | | * @see ecore_con_url_cookies_jar_file_set() | |
| | | */ | |
| EAPI void ecore_con_url_cookies_file_add(Ecore_Con_Url *url_co
n, | | EAPI void ecore_con_url_cookies_file_add(Ecore_Con_Url *url_co
n, | |
| const char * const fi
le_name); | | const char * const fi
le_name); | |
|
| | | /** | |
| | | * Sets the name of the file to which all current cookies will be written w | |
| | | hen | |
| | | * either cookies are flushed or Ecore_Con is shut down. | |
| | | * | |
| | | * @param url_con Ecore_Con_Url instance which will be acted upon. | |
| | | * @param cookiejar_file File to which the cookies will be written. | |
| | | * | |
| | | * @return @c EINA_TRUE is the file name has been set successfully, | |
| | | * @c EINA_FALSE otherwise. | |
| | | * | |
| | | * Cookies are written following Netscape/Mozilla's data format, also known | |
| | | as | |
| | | * cookie-jar. | |
| | | * | |
| | | * Cookies will only be @b saved to this file. If you need to read cookies | |
| | | from | |
| | | * a file, use ecore_con_url_cookies_file_add() instead. | |
| | | * | |
| | | * @note This function will initialize the cookie engine if it has not been | |
| | | * initialized yet. | |
| | | * | |
| | | * @see ecore_con_url_cookies_jar_write() | |
| | | */ | |
| EAPI Eina_Bool ecore_con_url_cookies_jar_file_set(Ecore_Con_Url *ur
l_con, | | EAPI Eina_Bool ecore_con_url_cookies_jar_file_set(Ecore_Con_Url *ur
l_con, | |
| const char * cons
t cookiejar_file); | | const char * cons
t cookiejar_file); | |
|
| | | /** | |
| | | * Writes all current cookies to the cookie jar immediately. | |
| | | * | |
| | | * @param url_con Ecore_Con_Url instance which will be acted upon. | |
| | | * | |
| | | * A cookie-jar file must have been previously set by | |
| | | * @c ecore_con_url_jar_file_set, otherwise nothing will be done. | |
| | | * | |
| | | * @note This function will initialize the cookie engine if it has not been | |
| | | * initialized yet. | |
| | | * | |
| | | * @see ecore_con_url_cookies_jar_file_set() | |
| | | */ | |
| EAPI void ecore_con_url_cookies_jar_write(Ecore_Con_Url *url_c
on); | | EAPI void ecore_con_url_cookies_jar_write(Ecore_Con_Url *url_c
on); | |
| | | | |
|
| | | EAPI void ecore_con_url_ssl_verify_peer_set(Ecore_Con_Url *url | |
| | | _con, | |
| | | Eina_Bool verify); | |
| | | EAPI int ecore_con_url_ssl_ca_set(Ecore_Con_Url *url_con, | |
| | | const char *ca_path); | |
| | | | |
| /** | | /** | |
| * @} | | * @} | |
| */ | | */ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 91 change blocks. |
| 17 lines changed or deleted | | 1402 lines changed or added | |
|
| Ecore_Getopt.h | | Ecore_Getopt.h | |
| | | | |
| skipping to change at line 55 | | skipping to change at line 55 | |
| * | | * | |
| * Values will be stored elsewhere indicated by an array of pointers | | * Values will be stored elsewhere indicated by an array of pointers | |
| * to values, it is given in separate to parser description so you can | | * to values, it is given in separate to parser description so you can | |
| * use multiple values with the same parser. | | * use multiple values with the same parser. | |
| */ | | */ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
|
| typedef enum { | | typedef enum { | |
| ECORE_GETOPT_ACTION_STORE, | | ECORE_GETOPT_ACTION_STORE, | |
| ECORE_GETOPT_ACTION_STORE_CONST, | | ECORE_GETOPT_ACTION_STORE_CONST, | |
| ECORE_GETOPT_ACTION_STORE_TRUE, | | ECORE_GETOPT_ACTION_STORE_TRUE, | |
| ECORE_GETOPT_ACTION_STORE_FALSE, | | ECORE_GETOPT_ACTION_STORE_FALSE, | |
| ECORE_GETOPT_ACTION_CHOICE, | | ECORE_GETOPT_ACTION_CHOICE, | |
| ECORE_GETOPT_ACTION_APPEND, | | ECORE_GETOPT_ACTION_APPEND, | |
| ECORE_GETOPT_ACTION_COUNT, | | ECORE_GETOPT_ACTION_COUNT, | |
| ECORE_GETOPT_ACTION_CALLBACK, | | ECORE_GETOPT_ACTION_CALLBACK, | |
| ECORE_GETOPT_ACTION_HELP, | | ECORE_GETOPT_ACTION_HELP, | |
| ECORE_GETOPT_ACTION_VERSION, | | ECORE_GETOPT_ACTION_VERSION, | |
| ECORE_GETOPT_ACTION_COPYRIGHT, | | ECORE_GETOPT_ACTION_COPYRIGHT, | |
| ECORE_GETOPT_ACTION_LICENSE | | ECORE_GETOPT_ACTION_LICENSE | |
| } Ecore_Getopt_Action; | | } Ecore_Getopt_Action; | |
| | | | |
| typedef enum { | | typedef enum { | |
| ECORE_GETOPT_TYPE_STR, | | ECORE_GETOPT_TYPE_STR, | |
| ECORE_GETOPT_TYPE_BOOL, | | ECORE_GETOPT_TYPE_BOOL, | |
| ECORE_GETOPT_TYPE_SHORT, | | ECORE_GETOPT_TYPE_SHORT, | |
| ECORE_GETOPT_TYPE_INT, | | ECORE_GETOPT_TYPE_INT, | |
| ECORE_GETOPT_TYPE_LONG, | | ECORE_GETOPT_TYPE_LONG, | |
| ECORE_GETOPT_TYPE_USHORT, | | ECORE_GETOPT_TYPE_USHORT, | |
| ECORE_GETOPT_TYPE_UINT, | | ECORE_GETOPT_TYPE_UINT, | |
| ECORE_GETOPT_TYPE_ULONG, | | ECORE_GETOPT_TYPE_ULONG, | |
| ECORE_GETOPT_TYPE_DOUBLE | | ECORE_GETOPT_TYPE_DOUBLE | |
| } Ecore_Getopt_Type; | | } Ecore_Getopt_Type; | |
| | | | |
| typedef enum { | | typedef enum { | |
| ECORE_GETOPT_DESC_ARG_REQUIREMENT_NO = 0, | | ECORE_GETOPT_DESC_ARG_REQUIREMENT_NO = 0, | |
| ECORE_GETOPT_DESC_ARG_REQUIREMENT_YES = 1, | | ECORE_GETOPT_DESC_ARG_REQUIREMENT_YES = 1, | |
| ECORE_GETOPT_DESC_ARG_REQUIREMENT_OPTIONAL = 3 | | ECORE_GETOPT_DESC_ARG_REQUIREMENT_OPTIONAL = 3 | |
| } Ecore_Getopt_Desc_Arg_Requirement; | | } Ecore_Getopt_Desc_Arg_Requirement; | |
| | | | |
| typedef union _Ecore_Getopt_Value Ecore_Getopt_Value; | | typedef union _Ecore_Getopt_Value Ecore_Getopt_Value; | |
| | | | |
| typedef struct _Ecore_Getopt_Desc_Store Ecore_Getopt_Desc_Store; | | typedef struct _Ecore_Getopt_Desc_Store Ecore_Getopt_Desc_Store; | |
| typedef struct _Ecore_Getopt_Desc_Callback Ecore_Getopt_Desc_Callback; | | typedef struct _Ecore_Getopt_Desc_Callback Ecore_Getopt_Desc_Callback; | |
| typedef struct _Ecore_Getopt_Desc Ecore_Getopt_Desc; | | typedef struct _Ecore_Getopt_Desc Ecore_Getopt_Desc; | |
| typedef struct _Ecore_Getopt Ecore_Getopt; | | typedef struct _Ecore_Getopt Ecore_Getopt; | |
| | | | |
| union _Ecore_Getopt_Value | | union _Ecore_Getopt_Value | |
| { | | { | |
| char **strp; | | char **strp; | |
| unsigned char *boolp; | | unsigned char *boolp; | |
| short *shortp; | | short *shortp; | |
| int *intp; | | int *intp; | |
| long *longp; | | long *longp; | |
| unsigned short *ushortp; | | unsigned short *ushortp; | |
| unsigned int *uintp; | | unsigned int *uintp; | |
| unsigned long *ulongp; | | unsigned long *ulongp; | |
| double *doublep; | | double *doublep; | |
| Eina_List **listp; | | Eina_List **listp; | |
| void **ptrp; | | void **ptrp; | |
| }; | | }; | |
| | | | |
| struct _Ecore_Getopt_Desc_Store | | struct _Ecore_Getopt_Desc_Store | |
| { | | { | |
| Ecore_Getopt_Type type; /**< type of data being handled */ | | Ecore_Getopt_Type type; /**< type of data being handled | |
| Ecore_Getopt_Desc_Arg_Requirement arg_req; | | */ | |
| union | | Ecore_Getopt_Desc_Arg_Requirement arg_req; | |
| { | | union | |
| const char *strv; | | { | |
| Eina_Bool boolv; | | const char *strv; | |
| short shortv; | | Eina_Bool boolv; | |
| int intv; | | short shortv; | |
| long longv; | | int intv; | |
| unsigned short ushortv; | | long longv; | |
| unsigned int uintv; | | unsigned short ushortv; | |
| unsigned long ulongv; | | unsigned int uintv; | |
| double doublev; | | unsigned long ulongv; | |
| } def; | | double doublev; | |
| }; | | } def; | |
| | | }; | |
| struct _Ecore_Getopt_Desc_Callback | | | |
| { | | struct _Ecore_Getopt_Desc_Callback | |
| Eina_Bool (*func)(const Ecore_Getopt *parser, const Ecore_Getopt_Desc | | { | |
| *desc, const char *str, void *data, Ecore_Getopt_Value *storage); | | Eina_Bool (*func)(const Ecore_Getopt *parser, | |
| const void *data; | | const Ecore_Getopt_Desc *desc, | |
| Ecore_Getopt_Desc_Arg_Requirement arg_req; | | const char *str, | |
| const char *def; | | void *data, | |
| }; | | Ecore_Getopt_Value *storage); | |
| | | const void *data; | |
| struct _Ecore_Getopt_Desc | | Ecore_Getopt_Desc_Arg_Requirement arg_req; | |
| { | | const char *def; | |
| char shortname; /**< used with a single dash */ | | }; | |
| const char *longname; /**< used with double dashes */ | | | |
| const char *help; /**< used by --help/ecore_getopt_help() */ | | struct _Ecore_Getopt_Desc | |
| const char *metavar; /**< used by ecore_getopt_help() with nargs > 0 | | { | |
| */ | | char shortname; /**< used with a single dash */ | |
| | | const char *longname; /**< used with double dashes */ | |
| Ecore_Getopt_Action action; /**< define how to handle it */ | | const char *help; /**< used by --help/ecore_getopt_help() */ | |
| union | | const char *metavar; /**< used by ecore_getopt_help() with nargs | |
| { | | > 0 */ | |
| const Ecore_Getopt_Desc_Store store; | | | |
| const void *store_const; | | Ecore_Getopt_Action action; /**< define how to handle it */ | |
| const char *const *choices; /* NULL terminated. */ | | union | |
| const Ecore_Getopt_Type append_type; | | { | |
| const Ecore_Getopt_Desc_Callback callback; | | const Ecore_Getopt_Desc_Store store; | |
| const void *dummy; | | const void *store_const; | |
| } action_param; | | const char *const *choices; /* NULL terminated. */ | |
| }; | | const Ecore_Getopt_Type append_type; | |
| | | const Ecore_Getopt_Desc_Callback callback; | |
| struct _Ecore_Getopt | | const void *dummy; | |
| { | | } action_param; | |
| const char *prog; /**< to be used when ecore_app_args_get() fails */ | | }; | |
| const char *usage; /**< usage example, %prog is replaced */ | | | |
| const char *version; /**< if exists, --version will work */ | | struct _Ecore_Getopt | |
| const char *copyright; /**< if exists, --copyright will work */ | | { | |
| const char *license; /**< if exists, --license will work */ | | const char *prog; /**< to be used when ecore_app_args_get() | |
| const char *description; /**< long description, possible multiline */ | | fails */ | |
| Eina_Bool strict : 1; /**< fail on errors */ | | const char *usage; /**< usage example, %prog is replaced */ | |
| const Ecore_Getopt_Desc descs[]; /* NULL terminated. */ | | const char *version; /**< if exists, --version will work */ | |
| }; | | const char *copyright; /**< if exists, --copyright will work | |
| | | */ | |
| | | const char *license; /**< if exists, --license will work */ | |
| | | const char *description; /**< long description, possible mul | |
| | | tiline */ | |
| | | Eina_Bool strict : 1; /**< fail on errors */ | |
| | | const Ecore_Getopt_Desc descs[]; /* NULL terminated. */ | |
| | | }; | |
| | | | |
| #define ECORE_GETOPT_STORE_FULL(shortname, longname, help, metavar, type, a
rg_requirement, default_value) \ | | #define ECORE_GETOPT_STORE_FULL(shortname, longname, help, metavar, type, a
rg_requirement, default_value) \ | |
|
| {shortname, longname, help, metavar, ECORE_GETOPT_ACTION_STORE, \ | | {shortname, longname, help, metavar, ECORE_GETOPT_ACTION_STORE, | |
| {.store = {type, arg_requirement, default_value}}} | | \ | |
| | | {.store = {type, arg_requirement, default_value}}} | |
| | | | |
|
| #define ECORE_GETOPT_STORE(shortname, longname, help, type) \ | | #define ECORE_GETOPT_STORE(shortname, longname, help, type) \ | |
| ECORE_GETOPT_STORE_FULL(shortname, longname, help, NULL, type, \ | | ECORE_GETOPT_STORE_FULL(shortname, longname, help, NULL, type, \ | |
| ECORE_GETOPT_DESC_ARG_REQUIREMENT_YES, {}) | | ECORE_GETOPT_DESC_ARG_REQUIREMENT_YES, {}) | |
| | | | |
|
| #define ECORE_GETOPT_STORE_STR(shortname, longname, help) \ | | #define ECORE_GETOPT_STORE_STR(shortname, longname, help) \ | |
| ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_STR) | | ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_STR) | |
|
| #define ECORE_GETOPT_STORE_BOOL(shortname, longname, help) \ | | #define ECORE_GETOPT_STORE_BOOL(shortname, longname, help) \ | |
| ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_BOOL) | | ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_BOOL) | |
|
| #define ECORE_GETOPT_STORE_SHORT(shortname, longname, help) \ | | #define ECORE_GETOPT_STORE_SHORT(shortname, longname, help) \ | |
| ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_SHORT) | | ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_SHORT) | |
|
| #define ECORE_GETOPT_STORE_INT(shortname, longname, help) \ | | #define ECORE_GETOPT_STORE_INT(shortname, longname, help) \ | |
| ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_INT) | | ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_INT) | |
|
| #define ECORE_GETOPT_STORE_LONG(shortname, longname, help) \ | | #define ECORE_GETOPT_STORE_LONG(shortname, longname, help) \ | |
| ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_LONG) | | ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_LONG) | |
|
| #define ECORE_GETOPT_STORE_USHORT(shortname, longname, help) \ | | #define ECORE_GETOPT_STORE_USHORT(shortname, longname, help) \ | |
| ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_USHORT) | | ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_USHORT) | |
|
| #define ECORE_GETOPT_STORE_UINT(shortname, longname, help) \ | | #define ECORE_GETOPT_STORE_UINT(shortname, longname, help) \ | |
| ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_UINT) | | ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_UINT) | |
|
| #define ECORE_GETOPT_STORE_ULONG(shortname, longname, help) \ | | #define ECORE_GETOPT_STORE_ULONG(shortname, longname, help) \ | |
| ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_ULONG) | | ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_ULONG) | |
|
| #define ECORE_GETOPT_STORE_DOUBLE(shortname, longname, help) \ | | #define ECORE_GETOPT_STORE_DOUBLE(shortname, longname, help) \ | |
| ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_DOUBLE) | | ECORE_GETOPT_STORE(shortname, longname, help, ECORE_GETOPT_TYPE_DOUBLE) | |
| | | | |
| #define ECORE_GETOPT_STORE_METAVAR(shortname, longname, help, metavar, type
) \ | | #define ECORE_GETOPT_STORE_METAVAR(shortname, longname, help, metavar, type
) \ | |
|
| ECORE_GETOPT_STORE_FULL(shortname, longname, help, metavar, type,
\ | | ECORE_GETOPT_STORE_FULL(shortname, longname, help, metavar, type,
\ | |
| ECORE_GETOPT_DESC_ARG_REQUIREMENT_YES, {}) | | ECORE_GETOPT_DESC_ARG_REQUIREMENT_YES, {}) | |
| | | | |
| #define ECORE_GETOPT_STORE_METAVAR_STR(shortname, longname, help, metavar)
\ | | #define ECORE_GETOPT_STORE_METAVAR_STR(shortname, longname, help, metavar)
\ | |
| ECORE_GETOPT_STORE_METAVAR(shortname, longname, help, metavar, ECORE_GETO
PT_TYPE_STR) | | ECORE_GETOPT_STORE_METAVAR(shortname, longname, help, metavar, ECORE_GETO
PT_TYPE_STR) | |
| #define ECORE_GETOPT_STORE_METAVAR_BOOL(shortname, longname, help, metavar)
\ | | #define ECORE_GETOPT_STORE_METAVAR_BOOL(shortname, longname, help, metavar)
\ | |
| ECORE_GETOPT_STORE_METAVAR(shortname, longname, help, metavar, ECORE_GETO
PT_TYPE_BOOL) | | ECORE_GETOPT_STORE_METAVAR(shortname, longname, help, metavar, ECORE_GETO
PT_TYPE_BOOL) | |
| #define ECORE_GETOPT_STORE_METAVAR_SHORT(shortname, longname, help, metavar
) \ | | #define ECORE_GETOPT_STORE_METAVAR_SHORT(shortname, longname, help, metavar
) \ | |
| ECORE_GETOPT_STORE_METAVAR(shortname, longname, help, metavar, ECORE_GETO
PT_TYPE_SHORT) | | ECORE_GETOPT_STORE_METAVAR(shortname, longname, help, metavar, ECORE_GETO
PT_TYPE_SHORT) | |
| #define ECORE_GETOPT_STORE_METAVAR_INT(shortname, longname, help, metavar)
\ | | #define ECORE_GETOPT_STORE_METAVAR_INT(shortname, longname, help, metavar)
\ | |
| ECORE_GETOPT_STORE_METAVAR(shortname, longname, help, metavar, ECORE_GETO
PT_TYPE_INT) | | ECORE_GETOPT_STORE_METAVAR(shortname, longname, help, metavar, ECORE_GETO
PT_TYPE_INT) | |
| | | | |
| skipping to change at line 262 | | skipping to change at line 266 | |
| ECORE_GETOPT_TYPE_ULONG,
\ | | ECORE_GETOPT_TYPE_ULONG,
\ | |
| {.ulongv = default_value}) | | {.ulongv = default_value}) | |
| #define ECORE_GETOPT_STORE_DEF_DOUBLE(shortname, longname, help, default_va
lue) \ | | #define ECORE_GETOPT_STORE_DEF_DOUBLE(shortname, longname, help, default_va
lue) \ | |
| ECORE_GETOPT_STORE_DEF(shortname, longname, help,
\ | | ECORE_GETOPT_STORE_DEF(shortname, longname, help,
\ | |
| ECORE_GETOPT_TYPE_DOUBLE,
\ | | ECORE_GETOPT_TYPE_DOUBLE,
\ | |
| {.doublev = default_value}) | | {.doublev = default_value}) | |
| | | | |
| #define ECORE_GETOPT_STORE_FULL_STR(shortname, longname, help, metavar, arg
_requirement, default_value) \ | | #define ECORE_GETOPT_STORE_FULL_STR(shortname, longname, help, metavar, arg
_requirement, default_value) \ | |
| ECORE_GETOPT_STORE_FULL(shortname, longname, help, metavar,
\ | | ECORE_GETOPT_STORE_FULL(shortname, longname, help, metavar,
\ | |
| ECORE_GETOPT_TYPE_STR,
\ | | ECORE_GETOPT_TYPE_STR,
\ | |
|
| arg_requirement,
\ | | arg_requirement,
\ | |
| {.strv = default_value}) | | {.strv = default_value}) | |
| #define ECORE_GETOPT_STORE_FULL_BOOL(shortname, longname, help, metavar, ar
g_requirement, default_value) \ | | #define ECORE_GETOPT_STORE_FULL_BOOL(shortname, longname, help, metavar, ar
g_requirement, default_value) \ | |
| ECORE_GETOPT_STORE_FULL(shortname, longname, help, metavar,
\ | | ECORE_GETOPT_STORE_FULL(shortname, longname, help, metavar,
\ | |
| ECORE_GETOPT_TYPE_BOOL,
\ | | ECORE_GETOPT_TYPE_BOOL,
\ | |
| arg_requirement,
\ | | arg_requirement,
\ | |
| {.boolv = default_value}) | | {.boolv = default_value}) | |
| #define ECORE_GETOPT_STORE_FULL_SHORT(shortname, longname, help, metavar, a
rg_requirement, default_value) \ | | #define ECORE_GETOPT_STORE_FULL_SHORT(shortname, longname, help, metavar, a
rg_requirement, default_value) \ | |
| ECORE_GETOPT_STORE_FULL(shortname, longname, help, metavar,
\ | | ECORE_GETOPT_STORE_FULL(shortname, longname, help, metavar,
\ | |
| ECORE_GETOPT_TYPE_SHORT,
\ | | ECORE_GETOPT_TYPE_SHORT,
\ | |
| arg_requirement,
\ | | arg_requirement,
\ | |
| | | | |
| skipping to change at line 307 | | skipping to change at line 311 | |
| arg_requirement,
\ | | arg_requirement,
\ | |
| {.ulongv = default_value}) | | {.ulongv = default_value}) | |
| #define ECORE_GETOPT_STORE_FULL_DOUBLE(shortname, longname, help, metavar,
arg_requirement, default_value) \ | | #define ECORE_GETOPT_STORE_FULL_DOUBLE(shortname, longname, help, metavar,
arg_requirement, default_value) \ | |
| ECORE_GETOPT_STORE_FULL(shortname, longname, help, metavar,
\ | | ECORE_GETOPT_STORE_FULL(shortname, longname, help, metavar,
\ | |
| ECORE_GETOPT_TYPE_DOUBLE,
\ | | ECORE_GETOPT_TYPE_DOUBLE,
\ | |
| arg_requirement,
\ | | arg_requirement,
\ | |
| {.doublev = default_value}) | | {.doublev = default_value}) | |
| | | | |
| #define ECORE_GETOPT_STORE_CONST(shortname, longname, help, value) \ | | #define ECORE_GETOPT_STORE_CONST(shortname, longname, help, value) \ | |
| {shortname, longname, help, NULL, ECORE_GETOPT_ACTION_STORE_CONST, \ | | {shortname, longname, help, NULL, ECORE_GETOPT_ACTION_STORE_CONST, \ | |
|
| {.store_const = value}} | | {.store_const = value}} | |
| #define ECORE_GETOPT_STORE_TRUE(shortname, longname, help) \ | | #define ECORE_GETOPT_STORE_TRUE(shortname, longname, help) \ | |
| {shortname, longname, help, NULL, ECORE_GETOPT_ACTION_STORE_TRUE, \ | | {shortname, longname, help, NULL, ECORE_GETOPT_ACTION_STORE_TRUE, \ | |
|
| {.dummy = NULL}} | | {.dummy = NULL}} | |
| #define ECORE_GETOPT_STORE_FALSE(shortname, longname, help) \ | | #define ECORE_GETOPT_STORE_FALSE(shortname, longname, help) \ | |
| {shortname, longname, help, NULL, ECORE_GETOPT_ACTION_STORE_FALSE, \ | | {shortname, longname, help, NULL, ECORE_GETOPT_ACTION_STORE_FALSE, \ | |
|
| {.dummy = NULL}} | | {.dummy = NULL}} | |
| | | | |
| #define ECORE_GETOPT_CHOICE(shortname, longname, help, choices_array) \ | | #define ECORE_GETOPT_CHOICE(shortname, longname, help, choices_array) \ | |
| {shortname, longname, help, NULL, ECORE_GETOPT_ACTION_CHOICE, \ | | {shortname, longname, help, NULL, ECORE_GETOPT_ACTION_CHOICE, \ | |
|
| {.choices = choices_array}} | | {.choices = choices_array}} | |
| #define ECORE_GETOPT_CHOICE_METAVAR(shortname, longname, help, metavar, cho
ices_array) \ | | #define ECORE_GETOPT_CHOICE_METAVAR(shortname, longname, help, metavar, cho
ices_array) \ | |
| {shortname, longname, help, metavar, ECORE_GETOPT_ACTION_CHOICE,
\ | | {shortname, longname, help, metavar, ECORE_GETOPT_ACTION_CHOICE,
\ | |
|
| {.choices = choices_array}} | | {.choices = choices_array}} | |
| | | | |
| #define ECORE_GETOPT_APPEND(shortname, longname, help, sub_type) \ | | #define ECORE_GETOPT_APPEND(shortname, longname, help, sub_type) \ | |
| {shortname, longname, help, NULL, ECORE_GETOPT_ACTION_APPEND, \ | | {shortname, longname, help, NULL, ECORE_GETOPT_ACTION_APPEND, \ | |
|
| {.append_type = sub_type}} | | {.append_type = sub_type}} | |
| #define ECORE_GETOPT_APPEND_METAVAR(shortname, longname, help, metavar, typ
e) \ | | #define ECORE_GETOPT_APPEND_METAVAR(shortname, longname, help, metavar, typ
e) \ | |
| {shortname, longname, help, metavar, ECORE_GETOPT_ACTION_APPEND,
\ | | {shortname, longname, help, metavar, ECORE_GETOPT_ACTION_APPEND,
\ | |
|
| {.append_type = type}} | | {.append_type = type}} | |
| | | | |
| #define ECORE_GETOPT_COUNT(shortname, longname, help) \ | | #define ECORE_GETOPT_COUNT(shortname, longname, help) \ | |
| {shortname, longname, help, NULL, ECORE_GETOPT_ACTION_COUNT, \ | | {shortname, longname, help, NULL, ECORE_GETOPT_ACTION_COUNT, \ | |
|
| {.dummy = NULL}} | | {.dummy = NULL}} | |
| | | | |
| #define ECORE_GETOPT_CALLBACK_FULL(shortname, longname, help, metavar, call
back_func, callback_data, argument_requirement, default_value) \ | | #define ECORE_GETOPT_CALLBACK_FULL(shortname, longname, help, metavar, call
back_func, callback_data, argument_requirement, default_value) \ | |
| {shortname, longname, help, metavar, ECORE_GETOPT_ACTION_CALLBACK,
\ | | {shortname, longname, help, metavar, ECORE_GETOPT_ACTION_CALLBACK,
\ | |
|
| {.callback = {callback_func, callback_data, | | {.callback = {callback_func, callback_data, | |
| \ | | \ | |
| argument_requirement, default_value}}} | | argument_requirement, default_value}}} | |
| #define ECORE_GETOPT_CALLBACK_NOARGS(shortname, longname, help, callback_fu
nc, callback_data) \ | | #define ECORE_GETOPT_CALLBACK_NOARGS(shortname, longname, help, callback_fu
nc, callback_data) \ | |
| ECORE_GETOPT_CALLBACK_FULL(shortname, longname, help, NULL,
\ | | ECORE_GETOPT_CALLBACK_FULL(shortname, longname, help, NULL,
\ | |
| callback_func, callback_data,
\ | | callback_func, callback_data,
\ | |
| ECORE_GETOPT_DESC_ARG_REQUIREMENT_NO,
\ | | ECORE_GETOPT_DESC_ARG_REQUIREMENT_NO,
\ | |
| NULL) | | NULL) | |
| #define ECORE_GETOPT_CALLBACK_ARGS(shortname, longname, help, metavar, call
back_func, callback_data) \ | | #define ECORE_GETOPT_CALLBACK_ARGS(shortname, longname, help, metavar, call
back_func, callback_data) \ | |
| ECORE_GETOPT_CALLBACK_FULL(shortname, longname, help, metavar,
\ | | ECORE_GETOPT_CALLBACK_FULL(shortname, longname, help, metavar,
\ | |
| callback_func, callback_data,
\ | | callback_func, callback_data,
\ | |
| ECORE_GETOPT_DESC_ARG_REQUIREMENT_YES,
\ | | ECORE_GETOPT_DESC_ARG_REQUIREMENT_YES,
\ | |
| NULL) | | NULL) | |
| | | | |
| #define ECORE_GETOPT_HELP(shortname, longname) \ | | #define ECORE_GETOPT_HELP(shortname, longname) \ | |
| {shortname, longname, "show this message.", NULL, \ | | {shortname, longname, "show this message.", NULL, \ | |
|
| ECORE_GETOPT_ACTION_HELP, \ | | ECORE_GETOPT_ACTION_HELP, \ | |
| {.dummy = NULL}} | | {.dummy = NULL}} | |
| | | | |
| #define ECORE_GETOPT_VERSION(shortname, longname) \ | | #define ECORE_GETOPT_VERSION(shortname, longname) \ | |
| {shortname, longname, "show program version.", NULL, \ | | {shortname, longname, "show program version.", NULL, \ | |
|
| ECORE_GETOPT_ACTION_VERSION, \ | | ECORE_GETOPT_ACTION_VERSION, \ | |
| {.dummy = NULL}} | | {.dummy = NULL}} | |
| | | | |
| #define ECORE_GETOPT_COPYRIGHT(shortname, longname) \ | | #define ECORE_GETOPT_COPYRIGHT(shortname, longname) \ | |
| {shortname, longname, "show copyright.", NULL, \ | | {shortname, longname, "show copyright.", NULL, \ | |
|
| ECORE_GETOPT_ACTION_COPYRIGHT, \ | | ECORE_GETOPT_ACTION_COPYRIGHT, \ | |
| {.dummy = NULL}} | | {.dummy = NULL}} | |
| | | | |
| #define ECORE_GETOPT_LICENSE(shortname, longname) \ | | #define ECORE_GETOPT_LICENSE(shortname, longname) \ | |
| {shortname, longname, "show license.", NULL, \ | | {shortname, longname, "show license.", NULL, \ | |
|
| ECORE_GETOPT_ACTION_LICENSE, \ | | ECORE_GETOPT_ACTION_LICENSE, \ | |
| {.dummy = NULL}} | | {.dummy = NULL}} | |
| | | | |
| #define ECORE_GETOPT_SENTINEL {0, NULL, NULL, NULL, 0, {.dummy = NULL}} | | #define ECORE_GETOPT_SENTINEL {0, NULL, NULL, NULL, 0, {.dummy = NULL}} | |
| | | | |
| #define ECORE_GETOPT_VALUE_STR(val) {.strp = &(val)} | | #define ECORE_GETOPT_VALUE_STR(val) {.strp = &(val)} | |
| #define ECORE_GETOPT_VALUE_BOOL(val) {.boolp = &(val)} | | #define ECORE_GETOPT_VALUE_BOOL(val) {.boolp = &(val)} | |
| #define ECORE_GETOPT_VALUE_SHORT(val) {.shortp = &(val)} | | #define ECORE_GETOPT_VALUE_SHORT(val) {.shortp = &(val)} | |
| #define ECORE_GETOPT_VALUE_INT(val) {.intp = &(val)} | | #define ECORE_GETOPT_VALUE_INT(val) {.intp = &(val)} | |
| #define ECORE_GETOPT_VALUE_LONG(val) {.longp = &(val)} | | #define ECORE_GETOPT_VALUE_LONG(val) {.longp = &(val)} | |
| #define ECORE_GETOPT_VALUE_USHORT(val) {.ushortp = &(val)} | | #define ECORE_GETOPT_VALUE_USHORT(val) {.ushortp = &(val)} | |
| #define ECORE_GETOPT_VALUE_UINT(val) {.uintp = &(val)} | | #define ECORE_GETOPT_VALUE_UINT(val) {.uintp = &(val)} | |
| #define ECORE_GETOPT_VALUE_ULONG(val) {.ulongp = &(val)} | | #define ECORE_GETOPT_VALUE_ULONG(val) {.ulongp = &(val)} | |
| #define ECORE_GETOPT_VALUE_DOUBLE(val) {.doublep = &(val)} | | #define ECORE_GETOPT_VALUE_DOUBLE(val) {.doublep = &(val)} | |
| #define ECORE_GETOPT_VALUE_PTR(val) {.ptrp = &(val)} | | #define ECORE_GETOPT_VALUE_PTR(val) {.ptrp = &(val)} | |
| #define ECORE_GETOPT_VALUE_PTR_CAST(val) {.ptrp = (void **)&(val)} | | #define ECORE_GETOPT_VALUE_PTR_CAST(val) {.ptrp = (void **)&(val)} | |
| #define ECORE_GETOPT_VALUE_LIST(val) {.listp = &(val)} | | #define ECORE_GETOPT_VALUE_LIST(val) {.listp = &(val)} | |
|
| #define ECORE_GETOPT_VALUE_NONE {.ptrp = NULL} | | #define ECORE_GETOPT_VALUE_NONE {.ptrp = NULL} | |
| | | | |
| EAPI void ecore_getopt_help(FILE *fp, const Ecore_Getopt *info); | | | |
| | | | |
| EAPI Eina_Bool ecore_getopt_parser_has_duplicates(const Ecore_Getopt *par | | | |
| ser); | | | |
| EAPI int ecore_getopt_parse(const Ecore_Getopt *parser, Ecore_Getopt_Valu | | | |
| e *values, int argc, char **argv); | | | |
| | | | |
| EAPI Eina_List *ecore_getopt_list_free(Eina_List *list); | | | |
| | | | |
|
| /* helper functions to be used with ECORE_GETOPT_CALLBACK_*() */ | | EAPI void | |
| EAPI Eina_Bool ecore_getopt_callback_geometry_parse(const Ecore_Getopt *p | | ecore_getopt_help(FILE *fp, | |
| arser, const Ecore_Getopt_Desc *desc, const char *str, void *data, Ecore_Ge | | const Ecore_Getopt *info); | |
| topt_Value *storage); | | | |
| EAPI Eina_Bool ecore_getopt_callback_size_parse(const Ecore_Getopt *parse | | EAPI Eina_Bool | |
| r, const Ecore_Getopt_Desc *desc, const char *str, void *data, Ecore_Getopt | | ecore_getopt_parser_has_duplicates(const Ecore_Getopt *parser); | |
| _Value *storage); | | EAPI int | |
| | | ecore_getopt_parse(const Ecore_Getopt *parser, | |
| | | Ecore_Getopt_Value *values, | |
| | | int argc, | |
| | | char **argv); | |
| | | | |
| | | EAPI Eina_List *ecore_getopt_list_free(Eina_List *list); | |
| | | | |
| | | /* helper functions to be used with ECORE_GETOPT_CALLBACK_*() */ | |
| | | EAPI Eina_Bool | |
| | | ecore_getopt_callback_geometry_parse(const Ecore_Getopt *parser, | |
| | | const Ecore_Getopt_Desc *desc, | |
| | | const char *str, | |
| | | void *data, | |
| | | Ecore_Getopt_Value *storage); | |
| | | EAPI Eina_Bool | |
| | | ecore_getopt_callback_size_parse(const Ecore_Getopt *parser, | |
| | | const Ecore_Getopt_Desc *desc, | |
| | | const char *str, | |
| | | void *data, | |
| | | Ecore_Getopt_Value *storage); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| #endif /* _ECORE_GETOPT_H */ | | #endif /* _ECORE_GETOPT_H */ | |
| | | | |
End of changes. 29 change blocks. |
| 164 lines changed or deleted | | 183 lines changed or added | |
|
| Ecore_X.h | | Ecore_X.h | |
| | | | |
| skipping to change at line 42 | | skipping to change at line 42 | |
| * @brief Ecore functions for dealing with the X Windows System | | * @brief Ecore functions for dealing with the X Windows System | |
| * | | * | |
| * Ecore_X provides a wrapper and convenience functions for using the | | * Ecore_X provides a wrapper and convenience functions for using the | |
| * X Windows System. Function groups for this part of the library | | * X Windows System. Function groups for this part of the library | |
| * include the following: | | * include the following: | |
| * @li @ref Ecore_X_Init_Group | | * @li @ref Ecore_X_Init_Group | |
| * @li @ref Ecore_X_Display_Attr_Group | | * @li @ref Ecore_X_Display_Attr_Group | |
| * @li @ref Ecore_X_Flush_Group | | * @li @ref Ecore_X_Flush_Group | |
| */ | | */ | |
| | | | |
|
| typedef unsigned int Ecore_X_ID; | | typedef unsigned int Ecore_X_ID; | |
| #ifndef _ECORE_X_WINDOW_PREDEF | | #ifndef _ECORE_X_WINDOW_PREDEF | |
|
| typedef Ecore_X_ID Ecore_X_Window; | | typedef Ecore_X_ID Ecore_X_Window; | |
| #endif // ifndef _ECORE_X_WINDOW_PREDEF | | #endif // ifndef _ECORE_X_WINDOW_PREDEF | |
|
| | | typedef void *Ecore_X_Visual; | |
| | | typedef Ecore_X_ID Ecore_X_Pixmap; | |
| | | typedef Ecore_X_ID Ecore_X_Drawable; | |
| #ifdef HAVE_ECORE_X_XCB | | #ifdef HAVE_ECORE_X_XCB | |
|
| typedef Ecore_X_ID Ecore_X_Visual; | | typedef Ecore_X_ID Ecore_X_GC; | |
| #else // ifdef HAVE_ECORE_X_XCB | | #else // ifdef HAVE_ECORE_X_XCB | |
|
| typedef void * Ecore_X_Visual; | | typedef void *Ecore_X_GC; | |
| #endif /* HAVE_ECORE_X_XCB */ | | #endif /* HAVE_ECORE_X_XCB */ | |
|
| typedef Ecore_X_ID Ecore_X_Pixmap; | | typedef Ecore_X_ID Ecore_X_Atom; | |
| typedef Ecore_X_ID Ecore_X_Drawable; | | typedef Ecore_X_ID Ecore_X_Colormap; | |
| #ifdef HAVE_ECORE_X_XCB | | typedef Ecore_X_ID Ecore_X_Time; | |
| typedef Ecore_X_ID Ecore_X_GC; | | typedef Ecore_X_ID Ecore_X_Cursor; | |
| #else // ifdef HAVE_ECORE_X_XCB | | typedef void Ecore_X_Display; | |
| typedef void * Ecore_X_GC; | | typedef void Ecore_X_Connection; | |
| #endif /* HAVE_ECORE_X_XCB */ | | typedef void Ecore_X_Screen; | |
| typedef Ecore_X_ID Ecore_X_Atom; | | typedef Ecore_X_ID Ecore_X_Sync_Counter; | |
| typedef Ecore_X_ID Ecore_X_Colormap; | | typedef Ecore_X_ID Ecore_X_Sync_Alarm; | |
| typedef Ecore_X_ID Ecore_X_Time; | | typedef void Ecore_X_XRegion; | |
| typedef Ecore_X_ID Ecore_X_Cursor; | | | |
| typedef void Ecore_X_Display; | | typedef Ecore_X_ID Ecore_X_Randr_Output; | |
| typedef void Ecore_X_Connection; | | typedef Ecore_X_ID Ecore_X_Randr_Crtc; | |
| typedef void Ecore_X_Screen; | | typedef Ecore_X_ID Ecore_X_Randr_Mode; | |
| typedef Ecore_X_ID Ecore_X_Sync_Counter; | | typedef unsigned short Ecore_X_Randr_Size_ID; | |
| typedef Ecore_X_ID Ecore_X_Sync_Alarm; | | typedef int Ecore_X_Randr_Screen; | |
| typedef void Ecore_X_XRegion; | | | |
| | | | |
| typedef Ecore_X_ID Ecore_X_Randr_Output; | | | |
| typedef Ecore_X_ID Ecore_X_Randr_Crtc; | | | |
| typedef Ecore_X_ID Ecore_X_Randr_Mode; | | | |
| typedef unsigned short Ecore_X_Randr_Size_ID; | | | |
| typedef int Ecore_X_Randr_Screen; | | | |
| | | | |
|
| typedef Ecore_X_ID Ecore_X_Device; | | typedef Ecore_X_ID Ecore_X_Device; | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif // ifdef __cplusplus | | #endif // ifdef __cplusplus | |
| | | | |
| typedef struct _Ecore_X_Rectangle | | typedef struct _Ecore_X_Rectangle | |
| { | | { | |
| int x, y; | | int x, y; | |
| unsigned int width, height; | | unsigned int width, height; | |
| } Ecore_X_Rectangle; | | } Ecore_X_Rectangle; | |
| | | | |
| typedef struct _Ecore_X_Icon | | typedef struct _Ecore_X_Icon | |
| { | | { | |
| unsigned int width, height; | | unsigned int width, height; | |
| unsigned int *data; | | unsigned int *data; | |
| } Ecore_X_Icon; | | } Ecore_X_Icon; | |
| | | | |
|
| typedef enum _Ecore_X_GC_Value_Mask { | | typedef enum _Ecore_X_GC_Value_Mask | |
| | | { | |
| ECORE_X_GC_VALUE_MASK_FUNCTION = (1L << 0), | | ECORE_X_GC_VALUE_MASK_FUNCTION = (1L << 0), | |
| ECORE_X_GC_VALUE_MASK_PLANE_MASK = (1L << 1), | | ECORE_X_GC_VALUE_MASK_PLANE_MASK = (1L << 1), | |
| ECORE_X_GC_VALUE_MASK_FOREGROUND = (1L << 2), | | ECORE_X_GC_VALUE_MASK_FOREGROUND = (1L << 2), | |
| ECORE_X_GC_VALUE_MASK_BACKGROUND = (1L << 3), | | ECORE_X_GC_VALUE_MASK_BACKGROUND = (1L << 3), | |
| ECORE_X_GC_VALUE_MASK_LINE_WIDTH = (1L << 4), | | ECORE_X_GC_VALUE_MASK_LINE_WIDTH = (1L << 4), | |
| ECORE_X_GC_VALUE_MASK_LINE_STYLE = (1L << 5), | | ECORE_X_GC_VALUE_MASK_LINE_STYLE = (1L << 5), | |
| ECORE_X_GC_VALUE_MASK_CAP_STYLE = (1L << 6), | | ECORE_X_GC_VALUE_MASK_CAP_STYLE = (1L << 6), | |
| ECORE_X_GC_VALUE_MASK_JOIN_STYLE = (1L << 7), | | ECORE_X_GC_VALUE_MASK_JOIN_STYLE = (1L << 7), | |
| ECORE_X_GC_VALUE_MASK_FILL_STYLE = (1L << 8), | | ECORE_X_GC_VALUE_MASK_FILL_STYLE = (1L << 8), | |
| ECORE_X_GC_VALUE_MASK_FILL_RULE = (1L << 9), | | ECORE_X_GC_VALUE_MASK_FILL_RULE = (1L << 9), | |
| | | | |
| skipping to change at line 119 | | skipping to change at line 116 | |
| ECORE_X_GC_VALUE_MASK_SUBWINDOW_MODE = (1L << 15), | | ECORE_X_GC_VALUE_MASK_SUBWINDOW_MODE = (1L << 15), | |
| ECORE_X_GC_VALUE_MASK_GRAPHICS_EXPOSURES = (1L << 16), | | ECORE_X_GC_VALUE_MASK_GRAPHICS_EXPOSURES = (1L << 16), | |
| ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_X = (1L << 17), | | ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_X = (1L << 17), | |
| ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_Y = (1L << 18), | | ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_Y = (1L << 18), | |
| ECORE_X_GC_VALUE_MASK_CLIP_MASK = (1L << 19), | | ECORE_X_GC_VALUE_MASK_CLIP_MASK = (1L << 19), | |
| ECORE_X_GC_VALUE_MASK_DASH_OFFSET = (1L << 20), | | ECORE_X_GC_VALUE_MASK_DASH_OFFSET = (1L << 20), | |
| ECORE_X_GC_VALUE_MASK_DASH_LIST = (1L << 21), | | ECORE_X_GC_VALUE_MASK_DASH_LIST = (1L << 21), | |
| ECORE_X_GC_VALUE_MASK_ARC_MODE = (1L << 22) | | ECORE_X_GC_VALUE_MASK_ARC_MODE = (1L << 22) | |
| } Ecore_X_GC_Value_Mask; | | } Ecore_X_GC_Value_Mask; | |
| | | | |
|
| typedef enum _Ecore_X_Composite_Update_Type { | | typedef enum _Ecore_X_Composite_Update_Type | |
| | | { | |
| ECORE_X_COMPOSITE_UPDATE_AUTOMATIC, | | ECORE_X_COMPOSITE_UPDATE_AUTOMATIC, | |
| ECORE_X_COMPOSITE_UPDATE_MANUAL | | ECORE_X_COMPOSITE_UPDATE_MANUAL | |
| } Ecore_X_Composite_Update_Type; | | } Ecore_X_Composite_Update_Type; | |
| | | | |
|
| typedef enum _Ecore_X_Window_State { | | typedef enum _Ecore_X_Window_State | |
| | | { | |
| /* Unknown state */ | | /* Unknown state */ | |
|
| ECORE_X_WINDOW_STATE_UNKNOWN = 0, | | ECORE_X_WINDOW_STATE_UNKNOWN = 0, | |
| /** The window is iconified. */ | | /** The window is iconified. */ | |
| ECORE_X_WINDOW_STATE_ICONIFIED, | | ECORE_X_WINDOW_STATE_ICONIFIED, | |
| /** The window is a modal dialog box. */ | | /** The window is a modal dialog box. */ | |
| ECORE_X_WINDOW_STATE_MODAL, | | ECORE_X_WINDOW_STATE_MODAL, | |
| /** The window manager should keep the window's position fixed | | /** The window manager should keep the window's position fixed | |
| * even if the virtual desktop scrolls. */ | | * even if the virtual desktop scrolls. */ | |
| ECORE_X_WINDOW_STATE_STICKY, | | ECORE_X_WINDOW_STATE_STICKY, | |
| /** The window has the maximum vertical size. */ | | /** The window has the maximum vertical size. */ | |
| ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, | | ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, | |
| /** The window has the maximum horizontal size. */ | | /** The window has the maximum horizontal size. */ | |
| ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, | | ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, | |
| /** The window is shaded. */ | | /** The window is shaded. */ | |
| ECORE_X_WINDOW_STATE_SHADED, | | ECORE_X_WINDOW_STATE_SHADED, | |
| /** The window should not be included in the taskbar. */ | | /** The window should not be included in the taskbar. */ | |
| ECORE_X_WINDOW_STATE_SKIP_TASKBAR, | | ECORE_X_WINDOW_STATE_SKIP_TASKBAR, | |
| /** The window should not be included in the pager. */ | | /** The window should not be included in the pager. */ | |
| ECORE_X_WINDOW_STATE_SKIP_PAGER, | | ECORE_X_WINDOW_STATE_SKIP_PAGER, | |
| /** The window is invisible (i.e. minimized/iconified) */ | | /** The window is invisible (i.e. minimized/iconified) */ | |
| ECORE_X_WINDOW_STATE_HIDDEN, | | ECORE_X_WINDOW_STATE_HIDDEN, | |
| /** The window should fill the entire screen and have no | | /** The window should fill the entire screen and have no | |
| * window border/decorations */ | | * window border/decorations */ | |
| ECORE_X_WINDOW_STATE_FULLSCREEN, | | ECORE_X_WINDOW_STATE_FULLSCREEN, | |
| /* The following are not documented because they are not | | /* The following are not documented because they are not | |
| * intended for use in applications. */ | | * intended for use in applications. */ | |
| ECORE_X_WINDOW_STATE_ABOVE, | | ECORE_X_WINDOW_STATE_ABOVE, | |
| ECORE_X_WINDOW_STATE_BELOW, | | ECORE_X_WINDOW_STATE_BELOW, | |
| /* FIXME: Documentation */ | | /* FIXME: Documentation */ | |
| ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION | | ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION | |
| } Ecore_X_Window_State; | | } Ecore_X_Window_State; | |
| | | | |
|
| typedef enum _Ecore_X_Window_State_Action { | | typedef enum _Ecore_X_Window_State_Action | |
| | | { | |
| ECORE_X_WINDOW_STATE_ACTION_REMOVE, | | ECORE_X_WINDOW_STATE_ACTION_REMOVE, | |
| ECORE_X_WINDOW_STATE_ACTION_ADD, | | ECORE_X_WINDOW_STATE_ACTION_ADD, | |
| ECORE_X_WINDOW_STATE_ACTION_TOGGLE | | ECORE_X_WINDOW_STATE_ACTION_TOGGLE | |
| } Ecore_X_Window_State_Action; | | } Ecore_X_Window_State_Action; | |
| | | | |
|
| typedef enum _Ecore_X_Window_Stack_Mode { | | typedef enum _Ecore_X_Window_Stack_Mode | |
| | | { | |
| ECORE_X_WINDOW_STACK_ABOVE = 0, | | ECORE_X_WINDOW_STACK_ABOVE = 0, | |
| ECORE_X_WINDOW_STACK_BELOW = 1, | | ECORE_X_WINDOW_STACK_BELOW = 1, | |
| ECORE_X_WINDOW_STACK_TOP_IF = 2, | | ECORE_X_WINDOW_STACK_TOP_IF = 2, | |
| ECORE_X_WINDOW_STACK_BOTTOM_IF = 3, | | ECORE_X_WINDOW_STACK_BOTTOM_IF = 3, | |
| ECORE_X_WINDOW_STACK_OPPOSITE = 4 | | ECORE_X_WINDOW_STACK_OPPOSITE = 4 | |
| } Ecore_X_Window_Stack_Mode; | | } Ecore_X_Window_Stack_Mode; | |
| | | | |
|
| typedef enum _Ecore_X_Randr_Orientation { | | typedef enum _Ecore_X_Randr_Orientation | |
| | | { | |
| ECORE_X_RANDR_ORIENTATION_ROT_0 = (1 << 0), | | ECORE_X_RANDR_ORIENTATION_ROT_0 = (1 << 0), | |
| ECORE_X_RANDR_ORIENTATION_ROT_90 = (1 << 1), | | ECORE_X_RANDR_ORIENTATION_ROT_90 = (1 << 1), | |
| ECORE_X_RANDR_ORIENTATION_ROT_180 = (1 << 2), | | ECORE_X_RANDR_ORIENTATION_ROT_180 = (1 << 2), | |
| ECORE_X_RANDR_ORIENTATION_ROT_270 = (1 << 3), | | ECORE_X_RANDR_ORIENTATION_ROT_270 = (1 << 3), | |
| ECORE_X_RANDR_ORIENTATION_FLIP_X = (1 << 4), | | ECORE_X_RANDR_ORIENTATION_FLIP_X = (1 << 4), | |
| ECORE_X_RANDR_ORIENTATION_FLIP_Y = (1 << 5) | | ECORE_X_RANDR_ORIENTATION_FLIP_Y = (1 << 5) | |
| } Ecore_X_Randr_Orientation; | | } Ecore_X_Randr_Orientation; | |
| | | | |
|
| typedef enum _Ecore_X_Randr_Connection_Status { | | typedef enum _Ecore_X_Randr_Connection_Status | |
| | | { | |
| ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED = 0, | | ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED = 0, | |
| ECORE_X_RANDR_CONNECTION_STATUS_DISCONNECTED = 1, | | ECORE_X_RANDR_CONNECTION_STATUS_DISCONNECTED = 1, | |
| ECORE_X_RANDR_CONNECTION_STATUS_UNKNOWN = 2 | | ECORE_X_RANDR_CONNECTION_STATUS_UNKNOWN = 2 | |
| } Ecore_X_Randr_Connection_Status; | | } Ecore_X_Randr_Connection_Status; | |
| | | | |
|
| typedef enum _Ecore_X_Randr_Output_Policy { | | typedef enum _Ecore_X_Randr_Output_Policy | |
| | | { | |
| ECORE_X_RANDR_OUTPUT_POLICY_ABOVE = 1, | | ECORE_X_RANDR_OUTPUT_POLICY_ABOVE = 1, | |
| ECORE_X_RANDR_OUTPUT_POLICY_RIGHT = 2, | | ECORE_X_RANDR_OUTPUT_POLICY_RIGHT = 2, | |
| ECORE_X_RANDR_OUTPUT_POLICY_BELOW = 3, | | ECORE_X_RANDR_OUTPUT_POLICY_BELOW = 3, | |
| ECORE_X_RANDR_OUTPUT_POLICY_LEFT = 4, | | ECORE_X_RANDR_OUTPUT_POLICY_LEFT = 4, | |
| ECORE_X_RANDR_OUTPUT_POLICY_CLONE = 5, | | ECORE_X_RANDR_OUTPUT_POLICY_CLONE = 5, | |
| ECORE_X_RANDR_OUTPUT_POLICY_NONE = 6 | | ECORE_X_RANDR_OUTPUT_POLICY_NONE = 6 | |
| } Ecore_X_Randr_Output_Policy; | | } Ecore_X_Randr_Output_Policy; | |
| | | | |
|
| typedef enum _Ecore_X_Randr_Relative_Alignment { | | typedef enum _Ecore_X_Randr_Relative_Alignment | |
| | | { | |
| ECORE_X_RANDR_RELATIVE_ALIGNMENT_NONE = 0, | | ECORE_X_RANDR_RELATIVE_ALIGNMENT_NONE = 0, | |
| ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_REL = 1, | | ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_REL = 1, | |
| ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_SCR = 2 | | ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_SCR = 2 | |
| } Ecore_X_Randr_Relative_Alignment; | | } Ecore_X_Randr_Relative_Alignment; | |
| | | | |
|
| typedef enum _Ecore_X_Render_Subpixel_Order { | | typedef enum _Ecore_X_Render_Subpixel_Order | |
| | | { | |
| ECORE_X_RENDER_SUBPIXEL_ORDER_UNKNOWN = 0, | | ECORE_X_RENDER_SUBPIXEL_ORDER_UNKNOWN = 0, | |
| ECORE_X_RENDER_SUBPIXEL_ORDER_HORIZONTAL_RGB = 1, | | ECORE_X_RENDER_SUBPIXEL_ORDER_HORIZONTAL_RGB = 1, | |
| ECORE_X_RENDER_SUBPIXEL_ORDER_HORIZONTAL_BGR = 2, | | ECORE_X_RENDER_SUBPIXEL_ORDER_HORIZONTAL_BGR = 2, | |
| ECORE_X_RENDER_SUBPIXEL_ORDER_VERTICAL_RGB = 3, | | ECORE_X_RENDER_SUBPIXEL_ORDER_VERTICAL_RGB = 3, | |
| ECORE_X_RENDER_SUBPIXEL_ORDER_VERTICAL_BGR = 4, | | ECORE_X_RENDER_SUBPIXEL_ORDER_VERTICAL_BGR = 4, | |
| ECORE_X_RENDER_SUBPIXEL_ORDER_NONE = 5 | | ECORE_X_RENDER_SUBPIXEL_ORDER_NONE = 5 | |
| } Ecore_X_Render_Subpixel_Order; | | } Ecore_X_Render_Subpixel_Order; | |
| | | | |
|
| | | typedef enum _Ecore_X_Randr_Edid_Display_Interface_Type | |
| | | { | |
| | | ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_UNDEFINED, | |
| | | ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_DVI, | |
| | | ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_HDMI_A, | |
| | | ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_HDMI_B, | |
| | | ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_MDDI, | |
| | | ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_DISPLAY_PORT | |
| | | } Ecore_X_Randr_Edid_Display_Interface_Type; | |
| | | | |
| | | typedef enum _Ecore_X_Randr_Edid_Display_Colorscheme | |
| | | { | |
| | | ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_MONOCHROME_GRAYSCALE = 0x00, | |
| | | ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB = 0x08, | |
| | | ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_NON_RGB = 0x10, | |
| | | ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_UNDEFINED = 0x18, | |
| | | ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_4_4_4 = 0x444000, | |
| | | ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_YCRCB_4_4_4 = 0x444, | |
| | | ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_YCRCB_4_2_2 = 0x422 | |
| | | } Ecore_X_Randr_Edid_Display_Colorscheme; | |
| | | | |
| | | typedef enum _Ecore_X_Randr_Edid_Aspect_Ratio | |
| | | { | |
| | | ECORE_X_RANDR_EDID_ASPECT_RATIO_4_3 = 0x0, | |
| | | ECORE_X_RANDR_EDID_ASPECT_RATIO_16_9 = 0x1, | |
| | | ECORE_X_RANDR_EDID_ASPECT_RATIO_16_10 = 0x2, | |
| | | ECORE_X_RANDR_EDID_ASPECT_RATIO_5_4 = 0x4, | |
| | | ECORE_X_RANDR_EDID_ASPECT_RATIO_15_9 = 0x8 | |
| | | } Ecore_X_Randr_Edid_Aspect_Ratio; | |
| | | | |
| | | #define ECORE_X_RANDR_EDID_UNKNOWN_VALUE -1 | |
| | | | |
| #define ECORE_X_SELECTION_TARGET_TARGETS "TARGETS" | | #define ECORE_X_SELECTION_TARGET_TARGETS "TARGETS" | |
| #define ECORE_X_SELECTION_TARGET_TEXT "TEXT" | | #define ECORE_X_SELECTION_TARGET_TEXT "TEXT" | |
| #define ECORE_X_SELECTION_TARGET_COMPOUND_TEXT "COMPOUND_TEXT" | | #define ECORE_X_SELECTION_TARGET_COMPOUND_TEXT "COMPOUND_TEXT" | |
| #define ECORE_X_SELECTION_TARGET_STRING "STRING" | | #define ECORE_X_SELECTION_TARGET_STRING "STRING" | |
| #define ECORE_X_SELECTION_TARGET_UTF8_STRING "UTF8_STRING" | | #define ECORE_X_SELECTION_TARGET_UTF8_STRING "UTF8_STRING" | |
| #define ECORE_X_SELECTION_TARGET_FILENAME "FILENAME" | | #define ECORE_X_SELECTION_TARGET_FILENAME "FILENAME" | |
| | | | |
| #define ECORE_X_DND_VERSION 5 | | #define ECORE_X_DND_VERSION 5 | |
| | | | |
|
| EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_COPY; | | typedef enum _Ecore_X_Selection | |
| EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_MOVE; | | { | |
| EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_LINK; | | | |
| EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_ASK; | | | |
| EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_PRIVATE; | | | |
| | | | |
| typedef enum _Ecore_X_Selection { | | | |
| ECORE_X_SELECTION_PRIMARY, | | ECORE_X_SELECTION_PRIMARY, | |
| ECORE_X_SELECTION_SECONDARY, | | ECORE_X_SELECTION_SECONDARY, | |
| ECORE_X_SELECTION_XDND, | | ECORE_X_SELECTION_XDND, | |
| ECORE_X_SELECTION_CLIPBOARD, | | ECORE_X_SELECTION_CLIPBOARD, | |
| ECORE_X_SELECTION_OTHER | | ECORE_X_SELECTION_OTHER | |
| } Ecore_X_Selection; | | } Ecore_X_Selection; | |
| | | | |
| typedef enum _Ecore_X_Event_Mode | | typedef enum _Ecore_X_Event_Mode | |
| { | | { | |
| ECORE_X_EVENT_MODE_NORMAL, | | ECORE_X_EVENT_MODE_NORMAL, | |
| | | | |
| skipping to change at line 315 | | skipping to change at line 348 | |
| ECORE_X_MAPPING_KEYBOARD, | | ECORE_X_MAPPING_KEYBOARD, | |
| ECORE_X_MAPPING_MOUSE | | ECORE_X_MAPPING_MOUSE | |
| } Ecore_X_Mapping_Type; | | } Ecore_X_Mapping_Type; | |
| | | | |
| typedef enum _Ecore_X_Randr_Property_Change | | typedef enum _Ecore_X_Randr_Property_Change | |
| { | | { | |
| ECORE_X_RANDR_PROPERTY_CHANGE_ADD, | | ECORE_X_RANDR_PROPERTY_CHANGE_ADD, | |
| ECORE_X_RANDR_PROPERTY_CHANGE_DEL | | ECORE_X_RANDR_PROPERTY_CHANGE_DEL | |
| } Ecore_X_Randr_Property_Change; | | } Ecore_X_Randr_Property_Change; | |
| | | | |
|
| typedef struct _Ecore_X_Event_Mouse_In Ecore_X_Event_Mouse_In; | | typedef struct _Ecore_X_Event_Mouse_In Ecore_X_Event_Mo | |
| typedef struct _Ecore_X_Event_Mouse_Out Ecore_X_Event_Mouse_Out; | | use_In; | |
| typedef struct _Ecore_X_Event_Window_Focus_In Ecore_X_Event_Window_Focu | | typedef struct _Ecore_X_Event_Mouse_Out Ecore_X_Event_Mo | |
| s_In; | | use_Out; | |
| typedef struct _Ecore_X_Event_Window_Focus_Out Ecore_X_Event_Window_Focu | | typedef struct _Ecore_X_Event_Window_Focus_In Ecore_X_Event_Wi | |
| s_Out; | | ndow_Focus_In; | |
| typedef struct _Ecore_X_Event_Window_Keymap Ecore_X_Event_Window_Keym | | typedef struct _Ecore_X_Event_Window_Focus_Out Ecore_X_Event_Wi | |
| ap; | | ndow_Focus_Out; | |
| typedef struct _Ecore_X_Event_Window_Damage Ecore_X_Event_Window_Dama | | typedef struct _Ecore_X_Event_Window_Keymap Ecore_X_Event_Wi | |
| ge; | | ndow_Keymap; | |
| typedef struct _Ecore_X_Event_Window_Visibility_Change Ecore_X_Event_Window | | typedef struct _Ecore_X_Event_Window_Damage Ecore_X_Event_Wi | |
| _Visibility_Change; | | ndow_Damage; | |
| typedef struct _Ecore_X_Event_Window_Create Ecore_X_Event_Window_Crea | | typedef struct _Ecore_X_Event_Window_Visibility_Change Ecore_X_Event_Wi | |
| te; | | ndow_Visibility_Change; | |
| typedef struct _Ecore_X_Event_Window_Destroy Ecore_X_Event_Window_Dest | | typedef struct _Ecore_X_Event_Window_Create Ecore_X_Event_Wi | |
| roy; | | ndow_Create; | |
| typedef struct _Ecore_X_Event_Window_Hide Ecore_X_Event_Window_Hide | | typedef struct _Ecore_X_Event_Window_Destroy Ecore_X_Event_Wi | |
| ; | | ndow_Destroy; | |
| typedef struct _Ecore_X_Event_Window_Show Ecore_X_Event_Window_Show | | typedef struct _Ecore_X_Event_Window_Hide Ecore_X_Event_Wi | |
| ; | | ndow_Hide; | |
| typedef struct _Ecore_X_Event_Window_Show_Request Ecore_X_Event_Window_Show | | typedef struct _Ecore_X_Event_Window_Show Ecore_X_Event_Wi | |
| _Request; | | ndow_Show; | |
| typedef struct _Ecore_X_Event_Window_Reparent Ecore_X_Event_Window_Repa | | typedef struct _Ecore_X_Event_Window_Show_Request Ecore_X_Event_Wi | |
| rent; | | ndow_Show_Request; | |
| typedef struct _Ecore_X_Event_Window_Configure Ecore_X_Event_Window_Conf | | typedef struct _Ecore_X_Event_Window_Reparent Ecore_X_Event_Wi | |
| igure; | | ndow_Reparent; | |
| typedef struct _Ecore_X_Event_Window_Configure_Request Ecore_X_Event_Window | | typedef struct _Ecore_X_Event_Window_Configure Ecore_X_Event_Wi | |
| _Configure_Request; | | ndow_Configure; | |
| typedef struct _Ecore_X_Event_Window_Gravity Ecore_X_Event_Window_Grav | | typedef struct _Ecore_X_Event_Window_Configure_Request Ecore_X_Event_Wi | |
| ity; | | ndow_Configure_Request; | |
| typedef struct _Ecore_X_Event_Window_Resize_Request Ecore_X_Event_Window_Re | | typedef struct _Ecore_X_Event_Window_Gravity Ecore_X_Event_Wi | |
| size_Request; | | ndow_Gravity; | |
| typedef struct _Ecore_X_Event_Window_Stack Ecore_X_Event_Window_Stac | | typedef struct _Ecore_X_Event_Window_Resize_Request Ecore_X_Event_Wi | |
| k; | | ndow_Resize_Request; | |
| typedef struct _Ecore_X_Event_Window_Stack_Request Ecore_X_Event_Window_Sta | | typedef struct _Ecore_X_Event_Window_Stack Ecore_X_Event_Wi | |
| ck_Request; | | ndow_Stack; | |
| typedef struct _Ecore_X_Event_Window_Property Ecore_X_Event_Window_Prop | | typedef struct _Ecore_X_Event_Window_Stack_Request Ecore_X_Event_Wi | |
| erty; | | ndow_Stack_Request; | |
| typedef struct _Ecore_X_Event_Window_Colormap Ecore_X_Event_Window_Colo | | typedef struct _Ecore_X_Event_Window_Property Ecore_X_Event_Wi | |
| rmap; | | ndow_Property; | |
| typedef struct _Ecore_X_Event_Mapping_Change Ecore_X_Event_Mapping_Cha | | typedef struct _Ecore_X_Event_Window_Colormap Ecore_X_Event_Wi | |
| nge; | | ndow_Colormap; | |
| typedef struct _Ecore_X_Event_Window_Mapping Ecore_X_Event_Window_Mapp | | typedef struct _Ecore_X_Event_Mapping_Change Ecore_X_Event_Ma | |
| ing; | | pping_Change; | |
| typedef struct _Ecore_X_Event_Selection_Clear Ecore_X_Event_Selection_C | | typedef struct _Ecore_X_Event_Window_Mapping Ecore_X_Event_Wi | |
| lear; | | ndow_Mapping; | |
| typedef struct _Ecore_X_Event_Selection_Request Ecore_X_Event_Selection_R | | typedef struct _Ecore_X_Event_Selection_Clear Ecore_X_Event_Se | |
| equest; | | lection_Clear; | |
| typedef struct _Ecore_X_Event_Selection_Notify Ecore_X_Event_Selection_N | | typedef struct _Ecore_X_Event_Selection_Request Ecore_X_Event_Se | |
| otify; | | lection_Request; | |
| typedef struct _Ecore_X_Selection_Data Ecore_X_Selection_Data; | | typedef struct _Ecore_X_Event_Selection_Notify Ecore_X_Event_Se | |
| typedef struct _Ecore_X_Selection_Data_Files Ecore_X_Selection_Data_Fi | | lection_Notify; | |
| les; | | typedef struct _Ecore_X_Event_Fixes_Selection_Notify Ecore_X_Event_Fi | |
| typedef struct _Ecore_X_Selection_Data_Text Ecore_X_Selection_Data_Te | | xes_Selection_Notify; | |
| xt; | | typedef struct _Ecore_X_Selection_Data Ecore_X_Selectio | |
| typedef struct _Ecore_X_Selection_Data_Targets Ecore_X_Selection_Data_Ta | | n_Data; | |
| rgets; | | typedef struct _Ecore_X_Selection_Data_Files Ecore_X_Selectio | |
| typedef struct _Ecore_X_Event_Xdnd_Enter Ecore_X_Event_Xdnd_Enter; | | n_Data_Files; | |
| typedef struct _Ecore_X_Event_Xdnd_Position Ecore_X_Event_Xdnd_Positi | | typedef struct _Ecore_X_Selection_Data_Text Ecore_X_Selectio | |
| on; | | n_Data_Text; | |
| typedef struct _Ecore_X_Event_Xdnd_Status Ecore_X_Event_Xdnd_Status | | typedef struct _Ecore_X_Selection_Data_Targets Ecore_X_Selectio | |
| ; | | n_Data_Targets; | |
| typedef struct _Ecore_X_Event_Xdnd_Leave Ecore_X_Event_Xdnd_Leave; | | typedef struct _Ecore_X_Event_Xdnd_Enter Ecore_X_Event_Xd | |
| typedef struct _Ecore_X_Event_Xdnd_Drop Ecore_X_Event_Xdnd_Drop; | | nd_Enter; | |
| typedef struct _Ecore_X_Event_Xdnd_Finished Ecore_X_Event_Xdnd_Finish | | typedef struct _Ecore_X_Event_Xdnd_Position Ecore_X_Event_Xd | |
| ed; | | nd_Position; | |
| typedef struct _Ecore_X_Event_Client_Message Ecore_X_Event_Client_Mess | | typedef struct _Ecore_X_Event_Xdnd_Status Ecore_X_Event_Xd | |
| age; | | nd_Status; | |
| typedef struct _Ecore_X_Event_Window_Shape Ecore_X_Event_Window_Shap | | typedef struct _Ecore_X_Event_Xdnd_Leave Ecore_X_Event_Xd | |
| e; | | nd_Leave; | |
| typedef struct _Ecore_X_Event_Screensaver_Notify Ecore_X_Event_Screensaver | | typedef struct _Ecore_X_Event_Xdnd_Drop Ecore_X_Event_Xd | |
| _Notify; | | nd_Drop; | |
| typedef struct _Ecore_X_Event_Sync_Counter Ecore_X_Event_Sync_Counte | | typedef struct _Ecore_X_Event_Xdnd_Finished Ecore_X_Event_Xd | |
| r; | | nd_Finished; | |
| typedef struct _Ecore_X_Event_Sync_Alarm Ecore_X_Event_Sync_Alarm; | | typedef struct _Ecore_X_Event_Client_Message Ecore_X_Event_Cl | |
| typedef struct _Ecore_X_Event_Screen_Change Ecore_X_Event_Screen_Chan | | ient_Message; | |
| ge; | | typedef struct _Ecore_X_Event_Window_Shape Ecore_X_Event_Wi | |
| typedef struct _Ecore_X_Event_Randr_Crtc_Change Ecore_X_Event_Randr_Crtc_ | | ndow_Shape; | |
| Change; | | typedef struct _Ecore_X_Event_Screensaver_Notify Ecore_X_Event_Sc | |
| typedef struct _Ecore_X_Event_Randr_Output_Change Ecore_X_Event_Randr_Outpu | | reensaver_Notify; | |
| t_Change; | | typedef struct _Ecore_X_Event_Gesture_Notify_Flick Ecore_X_Event_Ge | |
| | | sture_Notify_Flick; | |
| | | typedef struct _Ecore_X_Event_Gesture_Notify_Pan Ecore_X_Event_Ge | |
| | | sture_Notify_Pan; | |
| | | typedef struct _Ecore_X_Event_Gesture_Notify_PinchRotation Ecore_X_Event_Ge | |
| | | sture_Notify_PinchRotation; | |
| | | typedef struct _Ecore_X_Event_Gesture_Notify_Tap Ecore_X_Event_Ge | |
| | | sture_Notify_Tap; | |
| | | typedef struct _Ecore_X_Event_Gesture_Notify_TapNHold Ecore_X_Event_Ge | |
| | | sture_Notify_TapNHold; | |
| | | typedef struct _Ecore_X_Event_Gesture_Notify_Hold Ecore_X_Event_Ge | |
| | | sture_Notify_Hold; | |
| | | typedef struct _Ecore_X_Event_Gesture_Notify_Group Ecore_X_Event_Ge | |
| | | sture_Notify_Group; | |
| | | typedef struct _Ecore_X_Event_Sync_Counter Ecore_X_Event_Sy | |
| | | nc_Counter; | |
| | | typedef struct _Ecore_X_Event_Sync_Alarm Ecore_X_Event_Sy | |
| | | nc_Alarm; | |
| | | typedef struct _Ecore_X_Event_Screen_Change Ecore_X_Event_Sc | |
| | | reen_Change; | |
| | | typedef struct _Ecore_X_Event_Randr_Crtc_Change Ecore_X_Event_Ra | |
| | | ndr_Crtc_Change; | |
| | | typedef struct _Ecore_X_Event_Randr_Output_Change Ecore_X_Event_Ra | |
| | | ndr_Output_Change; | |
| typedef struct _Ecore_X_Event_Randr_Output_Property_Notify Ecore_X_Event_Ra
ndr_Output_Property_Notify; | | typedef struct _Ecore_X_Event_Randr_Output_Property_Notify Ecore_X_Event_Ra
ndr_Output_Property_Notify; | |
| | | | |
|
| typedef struct _Ecore_X_Event_Window_Delete_Request Ecore_X_Event_Wind | | typedef struct _Ecore_X_Event_Window_Delete_Request Ecore_X_Event_Wi | |
| ow_Delete_Request; | | ndow_Delete_Request; | |
| typedef struct _Ecore_X_Event_Window_Move_Resize_Request Ecore_X_Event_Wind | | typedef struct _Ecore_X_Event_Window_Move_Resize_Request Ecore_X_Event_Wi | |
| ow_Move_Resize_Request; | | ndow_Move_Resize_Request; | |
| typedef struct _Ecore_X_Event_Window_State_Request Ecore_X_Event_Wind | | typedef struct _Ecore_X_Event_Window_State_Request Ecore_X_Event_Wi | |
| ow_State_Request; | | ndow_State_Request; | |
| typedef struct _Ecore_X_Event_Frame_Extents_Request Ecore_X_Event_Fram | | typedef struct _Ecore_X_Event_Frame_Extents_Request Ecore_X_Event_Fr | |
| e_Extents_Request; | | ame_Extents_Request; | |
| typedef struct _Ecore_X_Event_Ping Ecore_X_Event_Ping | | typedef struct _Ecore_X_Event_Ping Ecore_X_Event_Pi | |
| ; | | ng; | |
| typedef struct _Ecore_X_Event_Desktop_Change Ecore_X_Event_Desk | | typedef struct _Ecore_X_Event_Desktop_Change Ecore_X_Event_De | |
| top_Change; | | sktop_Change; | |
| | | | |
|
| typedef struct _Ecore_X_Event_Startup_Sequence Ecore_X_Event_Startup_Sequ
ence; | | typedef struct _Ecore_X_Event_Startup_Sequence Ecore_X_Event_St
artup_Sequence; | |
| | | | |
|
| typedef struct _Ecore_X_Event_Generic Ecore_X_Event_Generic; | | typedef struct _Ecore_X_Event_Generic Ecore_X_Event_Ge
neric; | |
| | | | |
|
| typedef struct _Ecore_X_Randr_Screen_Size Ecore_X_Randr_Screen_Size; | | typedef struct _Ecore_X_Randr_Screen_Size Ecore_X_Randr_Sc | |
| typedef struct _Ecore_X_Randr_Screen_Size_MM Ecore_X_Randr_Screen_Size_ | | reen_Size; | |
| MM; | | typedef struct _Ecore_X_Randr_Screen_Size_MM Ecore_X_Randr_Sc | |
| | | reen_Size_MM; | |
| | | | |
|
| typedef struct _Ecore_X_Xdnd_Position Ecore_X_Xdnd_Position; | | typedef struct _Ecore_X_Xdnd_Position Ecore_X_Xdnd_Pos
ition; | |
| | | | |
| struct _Ecore_X_Event_Mouse_In | | struct _Ecore_X_Event_Mouse_In | |
| { | | { | |
| int modifiers; | | int modifiers; | |
| int x, y; | | int x, y; | |
| Eina_Bool same_screen : 1; | | Eina_Bool same_screen : 1; | |
|
| struct { | | struct | |
| int x, y; | | { | |
| | | int x, y; | |
| } root; | | } root; | |
| Ecore_X_Window win; | | Ecore_X_Window win; | |
| Ecore_X_Window event_win; | | Ecore_X_Window event_win; | |
| Ecore_X_Window root_win; | | Ecore_X_Window root_win; | |
| Ecore_X_Event_Mode mode; | | Ecore_X_Event_Mode mode; | |
| Ecore_X_Event_Detail detail; | | Ecore_X_Event_Detail detail; | |
| Ecore_X_Time time; | | Ecore_X_Time time; | |
| }; | | }; | |
| | | | |
| struct _Ecore_X_Event_Mouse_Out | | struct _Ecore_X_Event_Mouse_Out | |
| { | | { | |
| int modifiers; | | int modifiers; | |
| int x, y; | | int x, y; | |
| int same_screen; | | int same_screen; | |
|
| struct { | | struct | |
| int x, y; | | { | |
| | | int x, y; | |
| } root; | | } root; | |
| Ecore_X_Window win; | | Ecore_X_Window win; | |
| Ecore_X_Window event_win; | | Ecore_X_Window event_win; | |
| Ecore_X_Window root_win; | | Ecore_X_Window root_win; | |
| Ecore_X_Event_Mode mode; | | Ecore_X_Event_Mode mode; | |
| Ecore_X_Event_Detail detail; | | Ecore_X_Event_Detail detail; | |
| Ecore_X_Time time; | | Ecore_X_Time time; | |
| }; | | }; | |
| | | | |
| struct _Ecore_X_Event_Window_Focus_In | | struct _Ecore_X_Event_Window_Focus_In | |
| | | | |
| skipping to change at line 585 | | skipping to change at line 628 | |
| struct _Ecore_X_Event_Selection_Request | | struct _Ecore_X_Event_Selection_Request | |
| { | | { | |
| Ecore_X_Window owner; | | Ecore_X_Window owner; | |
| Ecore_X_Window requestor; | | Ecore_X_Window requestor; | |
| Ecore_X_Time time; | | Ecore_X_Time time; | |
| Ecore_X_Atom selection; | | Ecore_X_Atom selection; | |
| Ecore_X_Atom target; | | Ecore_X_Atom target; | |
| Ecore_X_Atom property; | | Ecore_X_Atom property; | |
| }; | | }; | |
| | | | |
|
| | | typedef enum | |
| | | { | |
| | | ECORE_X_OWNER_CHANGE_REASON_NEW_OWNER, | |
| | | ECORE_X_OWNER_CHANGE_REASON_DESTROY, | |
| | | ECORE_X_OWNER_CHANGE_REASON_CLOSE | |
| | | } Ecore_X_Owner_Change_Reason; | |
| | | | |
| | | struct _Ecore_X_Event_Fixes_Selection_Notify | |
| | | { | |
| | | Ecore_X_Window win; | |
| | | Ecore_X_Window owner; | |
| | | Ecore_X_Time time; | |
| | | Ecore_X_Time selection_time; | |
| | | Ecore_X_Selection selection; | |
| | | Ecore_X_Atom atom; | |
| | | Ecore_X_Owner_Change_Reason reason; | |
| | | }; | |
| | | | |
| struct _Ecore_X_Event_Selection_Notify | | struct _Ecore_X_Event_Selection_Notify | |
| { | | { | |
| Ecore_X_Window win; | | Ecore_X_Window win; | |
| Ecore_X_Time time; | | Ecore_X_Time time; | |
| Ecore_X_Selection selection; | | Ecore_X_Selection selection; | |
| Ecore_X_Atom atom; | | Ecore_X_Atom atom; | |
| char *target; | | char *target; | |
| void *data; | | void *data; | |
| }; | | }; | |
| | | | |
| struct _Ecore_X_Selection_Data | | struct _Ecore_X_Selection_Data | |
| { | | { | |
|
| enum { | | enum | |
| | | { | |
| ECORE_X_SELECTION_CONTENT_NONE, | | ECORE_X_SELECTION_CONTENT_NONE, | |
| ECORE_X_SELECTION_CONTENT_TEXT, | | ECORE_X_SELECTION_CONTENT_TEXT, | |
| ECORE_X_SELECTION_CONTENT_FILES, | | ECORE_X_SELECTION_CONTENT_FILES, | |
| ECORE_X_SELECTION_CONTENT_TARGETS, | | ECORE_X_SELECTION_CONTENT_TARGETS, | |
| ECORE_X_SELECTION_CONTENT_CUSTOM | | ECORE_X_SELECTION_CONTENT_CUSTOM | |
| } content; | | } content; | |
| unsigned char *data; | | unsigned char *data; | |
| int length; | | int length; | |
| int format; | | int format; | |
| int (*free)(void *data); | | int (*free)(void *data); | |
| | | | |
| skipping to change at line 641 | | skipping to change at line 703 | |
| { | | { | |
| Ecore_X_Window win, source; | | Ecore_X_Window win, source; | |
| | | | |
| char **types; | | char **types; | |
| int num_types; | | int num_types; | |
| }; | | }; | |
| | | | |
| struct _Ecore_X_Event_Xdnd_Position | | struct _Ecore_X_Event_Xdnd_Position | |
| { | | { | |
| Ecore_X_Window win, source; | | Ecore_X_Window win, source; | |
|
| struct { | | struct | |
| int x, y; | | { | |
| | | int x, y; | |
| } position; | | } position; | |
| Ecore_X_Atom action; | | Ecore_X_Atom action; | |
| }; | | }; | |
| | | | |
| struct _Ecore_X_Xdnd_Position | | struct _Ecore_X_Xdnd_Position | |
| { | | { | |
| Ecore_X_Window win, prev; | | Ecore_X_Window win, prev; | |
|
| struct { | | struct | |
| int x, y; | | { | |
| | | int x, y; | |
| } position; | | } position; | |
| }; | | }; | |
| | | | |
| struct _Ecore_X_Event_Xdnd_Status | | struct _Ecore_X_Event_Xdnd_Status | |
| { | | { | |
| Ecore_X_Window win, target; | | Ecore_X_Window win, target; | |
| Eina_Bool will_accept : 1; | | Eina_Bool will_accept : 1; | |
| Ecore_X_Rectangle rectangle; | | Ecore_X_Rectangle rectangle; | |
| Ecore_X_Atom action; | | Ecore_X_Atom action; | |
| }; | | }; | |
| | | | |
| struct _Ecore_X_Event_Xdnd_Leave | | struct _Ecore_X_Event_Xdnd_Leave | |
| { | | { | |
| Ecore_X_Window win, source; | | Ecore_X_Window win, source; | |
| }; | | }; | |
| | | | |
| struct _Ecore_X_Event_Xdnd_Drop | | struct _Ecore_X_Event_Xdnd_Drop | |
| { | | { | |
| Ecore_X_Window win, source; | | Ecore_X_Window win, source; | |
| Ecore_X_Atom action; | | Ecore_X_Atom action; | |
|
| struct { | | struct | |
| int x, y; | | { | |
| | | int x, y; | |
| } position; | | } position; | |
| }; | | }; | |
| | | | |
| struct _Ecore_X_Event_Xdnd_Finished | | struct _Ecore_X_Event_Xdnd_Finished | |
| { | | { | |
| Ecore_X_Window win, target; | | Ecore_X_Window win, target; | |
|
| Eina_Bool completed : 1; | | Eina_Bool completed : 1; | |
| Ecore_X_Atom action; | | Ecore_X_Atom action; | |
| }; | | }; | |
| | | | |
| struct _Ecore_X_Event_Client_Message | | struct _Ecore_X_Event_Client_Message | |
| { | | { | |
| Ecore_X_Window win; | | Ecore_X_Window win; | |
| Ecore_X_Atom message_type; | | Ecore_X_Atom message_type; | |
| int format; | | int format; | |
|
| union { | | union | |
| char b[20]; | | { | |
| short s[10]; | | char b[20]; | |
| long l[5]; | | short s[10]; | |
| | | long l[5]; | |
| } data; | | } data; | |
| Ecore_X_Time time; | | Ecore_X_Time time; | |
| }; | | }; | |
| | | | |
| struct _Ecore_X_Event_Window_Shape | | struct _Ecore_X_Event_Window_Shape | |
| { | | { | |
| Ecore_X_Window win; | | Ecore_X_Window win; | |
| Ecore_X_Time time; | | Ecore_X_Time time; | |
| Ecore_X_Shape_Type type; | | Ecore_X_Shape_Type type; | |
| int x, y, w, h; | | int x, y, w, h; | |
| | | | |
| skipping to change at line 861 | | skipping to change at line 927 | |
| EAPI extern int ECORE_X_EVENT_WINDOW_RESIZE_REQUEST; | | EAPI extern int ECORE_X_EVENT_WINDOW_RESIZE_REQUEST; | |
| EAPI extern int ECORE_X_EVENT_WINDOW_STACK; | | EAPI extern int ECORE_X_EVENT_WINDOW_STACK; | |
| EAPI extern int ECORE_X_EVENT_WINDOW_STACK_REQUEST; | | EAPI extern int ECORE_X_EVENT_WINDOW_STACK_REQUEST; | |
| EAPI extern int ECORE_X_EVENT_WINDOW_PROPERTY; | | EAPI extern int ECORE_X_EVENT_WINDOW_PROPERTY; | |
| EAPI extern int ECORE_X_EVENT_WINDOW_COLORMAP; | | EAPI extern int ECORE_X_EVENT_WINDOW_COLORMAP; | |
| EAPI extern int ECORE_X_EVENT_WINDOW_MAPPING; | | EAPI extern int ECORE_X_EVENT_WINDOW_MAPPING; | |
| EAPI extern int ECORE_X_EVENT_MAPPING_CHANGE; | | EAPI extern int ECORE_X_EVENT_MAPPING_CHANGE; | |
| EAPI extern int ECORE_X_EVENT_SELECTION_CLEAR; | | EAPI extern int ECORE_X_EVENT_SELECTION_CLEAR; | |
| EAPI extern int ECORE_X_EVENT_SELECTION_REQUEST; | | EAPI extern int ECORE_X_EVENT_SELECTION_REQUEST; | |
| EAPI extern int ECORE_X_EVENT_SELECTION_NOTIFY; | | EAPI extern int ECORE_X_EVENT_SELECTION_NOTIFY; | |
|
| | | EAPI extern int ECORE_X_EVENT_FIXES_SELECTION_NOTIFY; | |
| EAPI extern int ECORE_X_EVENT_CLIENT_MESSAGE; | | EAPI extern int ECORE_X_EVENT_CLIENT_MESSAGE; | |
| EAPI extern int ECORE_X_EVENT_WINDOW_SHAPE; | | EAPI extern int ECORE_X_EVENT_WINDOW_SHAPE; | |
| EAPI extern int ECORE_X_EVENT_SCREENSAVER_NOTIFY; | | EAPI extern int ECORE_X_EVENT_SCREENSAVER_NOTIFY; | |
|
| | | EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_FLICK; | |
| | | EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_PAN; | |
| | | EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_PINCHROTATION; | |
| | | EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_TAP; | |
| | | EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_TAPNHOLD; | |
| | | EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_HOLD; | |
| | | EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_GROUP; | |
| EAPI extern int ECORE_X_EVENT_SYNC_COUNTER; | | EAPI extern int ECORE_X_EVENT_SYNC_COUNTER; | |
| EAPI extern int ECORE_X_EVENT_SYNC_ALARM; | | EAPI extern int ECORE_X_EVENT_SYNC_ALARM; | |
| EAPI extern int ECORE_X_EVENT_SCREEN_CHANGE; | | EAPI extern int ECORE_X_EVENT_SCREEN_CHANGE; | |
| EAPI extern int ECORE_X_EVENT_RANDR_CRTC_CHANGE; | | EAPI extern int ECORE_X_EVENT_RANDR_CRTC_CHANGE; | |
| EAPI extern int ECORE_X_EVENT_RANDR_OUTPUT_CHANGE; | | EAPI extern int ECORE_X_EVENT_RANDR_OUTPUT_CHANGE; | |
| EAPI extern int ECORE_X_EVENT_RANDR_OUTPUT_PROPERTY_NOTIFY; | | EAPI extern int ECORE_X_EVENT_RANDR_OUTPUT_PROPERTY_NOTIFY; | |
| EAPI extern int ECORE_X_EVENT_DAMAGE_NOTIFY; | | EAPI extern int ECORE_X_EVENT_DAMAGE_NOTIFY; | |
| | | | |
| EAPI extern int ECORE_X_EVENT_WINDOW_DELETE_REQUEST; | | EAPI extern int ECORE_X_EVENT_WINDOW_DELETE_REQUEST; | |
| | | | |
| | | | |
| skipping to change at line 896 | | skipping to change at line 970 | |
| EAPI extern int ECORE_X_EVENT_XDND_ENTER; | | EAPI extern int ECORE_X_EVENT_XDND_ENTER; | |
| EAPI extern int ECORE_X_EVENT_XDND_POSITION; | | EAPI extern int ECORE_X_EVENT_XDND_POSITION; | |
| EAPI extern int ECORE_X_EVENT_XDND_STATUS; | | EAPI extern int ECORE_X_EVENT_XDND_STATUS; | |
| EAPI extern int ECORE_X_EVENT_XDND_LEAVE; | | EAPI extern int ECORE_X_EVENT_XDND_LEAVE; | |
| EAPI extern int ECORE_X_EVENT_XDND_DROP; | | EAPI extern int ECORE_X_EVENT_XDND_DROP; | |
| EAPI extern int ECORE_X_EVENT_XDND_FINISHED; | | EAPI extern int ECORE_X_EVENT_XDND_FINISHED; | |
| | | | |
| EAPI extern int ECORE_X_LOCK_SCROLL; | | EAPI extern int ECORE_X_LOCK_SCROLL; | |
| EAPI extern int ECORE_X_LOCK_NUM; | | EAPI extern int ECORE_X_LOCK_NUM; | |
| EAPI extern int ECORE_X_LOCK_CAPS; | | EAPI extern int ECORE_X_LOCK_CAPS; | |
|
| | | EAPI extern int ECORE_X_LOCK_SHIFT; | |
| | | | |
| typedef enum _Ecore_X_WM_Protocol | | typedef enum _Ecore_X_WM_Protocol | |
| { | | { | |
| /* If enabled the window manager will be asked to send a | | /* If enabled the window manager will be asked to send a | |
| * delete message instead of just closing (destroying) the window. */ | | * delete message instead of just closing (destroying) the window. */ | |
|
| ECORE_X_WM_PROTOCOL_DELETE_REQUEST, | | ECORE_X_WM_PROTOCOL_DELETE_REQUEST, | |
| | | | |
|
| /* If enabled the window manager will be told that the window | | /* If enabled the window manager will be told that the window | |
| * explicitly sets input focus. */ | | * explicitly sets input focus. */ | |
| ECORE_X_WM_PROTOCOL_TAKE_FOCUS, | | ECORE_X_WM_PROTOCOL_TAKE_FOCUS, | |
| | | | |
| /* If enabled the window manager can ping the window to check | | /* If enabled the window manager can ping the window to check | |
| * if it is alive. */ | | * if it is alive. */ | |
| ECORE_X_NET_WM_PROTOCOL_PING, | | ECORE_X_NET_WM_PROTOCOL_PING, | |
| | | | |
| /* If enabled the window manager can sync updating with the | | /* If enabled the window manager can sync updating with the | |
| * window (?) */ | | * window (?) */ | |
| ECORE_X_NET_WM_PROTOCOL_SYNC_REQUEST, | | ECORE_X_NET_WM_PROTOCOL_SYNC_REQUEST, | |
| | | | |
|
| /* Number of defined items */ | | /* Number of defined items */ | |
| ECORE_X_WM_PROTOCOL_NUM | | ECORE_X_WM_PROTOCOL_NUM | |
| } Ecore_X_WM_Protocol; | | } Ecore_X_WM_Protocol; | |
| | | | |
| typedef enum _Ecore_X_Window_Input_Mode | | typedef enum _Ecore_X_Window_Input_Mode | |
| { | | { | |
| /* The window can never be focused */ | | /* The window can never be focused */ | |
|
| ECORE_X_WINDOW_INPUT_MODE_NONE, | | ECORE_X_WINDOW_INPUT_MODE_NONE, | |
| | | | |
|
| /* The window can be focused by the WM but doesn't focus itself */ | | /* The window can be focused by the WM but doesn't focus itself */ | |
| ECORE_X_WINDOW_INPUT_MODE_PASSIVE, | | ECORE_X_WINDOW_INPUT_MODE_PASSIVE, | |
| | | | |
|
| /* The window sets the focus itself if one of its sub-windows | | /* The window sets the focus itself if one of its sub-windows | |
| * already is focused */ | | * already is focused */ | |
| ECORE_X_WINDOW_INPUT_MODE_ACTIVE_LOCAL, | | ECORE_X_WINDOW_INPUT_MODE_ACTIVE_LOCAL, | |
| | | | |
| /* The window sets the focus itself even if another window | | /* The window sets the focus itself even if another window | |
| * is currently focused */ | | * is currently focused */ | |
| ECORE_X_WINDOW_INPUT_MODE_ACTIVE_GLOBAL | | ECORE_X_WINDOW_INPUT_MODE_ACTIVE_GLOBAL | |
| } Ecore_X_Window_Input_Mode; | | } Ecore_X_Window_Input_Mode; | |
| | | | |
| typedef enum _Ecore_X_Window_State_Hint | | typedef enum _Ecore_X_Window_State_Hint | |
| { | | { | |
| /** Do not provide any state hint to the window manager */ | | /** Do not provide any state hint to the window manager */ | |
|
| ECORE_X_WINDOW_STATE_HINT_NONE = -1, | | ECORE_X_WINDOW_STATE_HINT_NONE = -1, | |
| | | | |
|
| /** The window wants to remain hidden and NOT iconified */ | | /** The window wants to remain hidden and NOT iconified */ | |
| ECORE_X_WINDOW_STATE_HINT_WITHDRAWN, | | ECORE_X_WINDOW_STATE_HINT_WITHDRAWN, | |
| | | | |
|
| /** The window wants to be mapped normally */ | | /** The window wants to be mapped normally */ | |
| ECORE_X_WINDOW_STATE_HINT_NORMAL, | | ECORE_X_WINDOW_STATE_HINT_NORMAL, | |
| | | | |
|
| /** The window wants to start in an iconified state */ | | /** The window wants to start in an iconified state */ | |
| ECORE_X_WINDOW_STATE_HINT_ICONIC | | ECORE_X_WINDOW_STATE_HINT_ICONIC | |
| } Ecore_X_Window_State_Hint; | | } Ecore_X_Window_State_Hint; | |
| | | | |
| typedef enum _Ecore_X_Window_Type | | typedef enum _Ecore_X_Window_Type | |
| { | | { | |
| ECORE_X_WINDOW_TYPE_UNKNOWN = 0, | | ECORE_X_WINDOW_TYPE_UNKNOWN = 0, | |
| ECORE_X_WINDOW_TYPE_DESKTOP, | | ECORE_X_WINDOW_TYPE_DESKTOP, | |
| ECORE_X_WINDOW_TYPE_DOCK, | | ECORE_X_WINDOW_TYPE_DOCK, | |
| ECORE_X_WINDOW_TYPE_TOOLBAR, | | ECORE_X_WINDOW_TYPE_TOOLBAR, | |
| ECORE_X_WINDOW_TYPE_MENU, | | ECORE_X_WINDOW_TYPE_MENU, | |
| ECORE_X_WINDOW_TYPE_UTILITY, | | ECORE_X_WINDOW_TYPE_UTILITY, | |
| | | | |
| skipping to change at line 1042 | | skipping to change at line 1117 | |
| /* Window layer constants */ | | /* Window layer constants */ | |
| #define ECORE_X_WINDOW_LAYER_BELOW 2 | | #define ECORE_X_WINDOW_LAYER_BELOW 2 | |
| #define ECORE_X_WINDOW_LAYER_NORMAL 4 | | #define ECORE_X_WINDOW_LAYER_NORMAL 4 | |
| #define ECORE_X_WINDOW_LAYER_ABOVE 6 | | #define ECORE_X_WINDOW_LAYER_ABOVE 6 | |
| | | | |
| /* Property list operations */ | | /* Property list operations */ | |
| #define ECORE_X_PROP_LIST_REMOVE 0 | | #define ECORE_X_PROP_LIST_REMOVE 0 | |
| #define ECORE_X_PROP_LIST_ADD 1 | | #define ECORE_X_PROP_LIST_ADD 1 | |
| #define ECORE_X_PROP_LIST_TOGGLE 2 | | #define ECORE_X_PROP_LIST_TOGGLE 2 | |
| | | | |
|
| EAPI int ecore_x_init(const char *name); | | EAPI int | |
| EAPI int ecore_x_shutdown(void); | | ecore_x_init(const char *name); | |
| EAPI int ecore_x_disconnect(void); | | EAPI int | |
| EAPI Ecore_X_Display * ecore_x_display_get(void); | | ecore_x_shutdown(void); | |
| EAPI Ecore_X_Connection * ecore_x_connection_get(void); | | EAPI int | |
| EAPI int ecore_x_fd_get(void); | | ecore_x_disconnect(void); | |
| EAPI Ecore_X_Screen * ecore_x_default_screen_get(void); | | EAPI Ecore_X_Display * | |
| EAPI void ecore_x_double_click_time_set(double t); | | ecore_x_display_get(void); | |
| EAPI double ecore_x_double_click_time_get(void); | | EAPI Ecore_X_Connection * | |
| EAPI void ecore_x_flush(void); | | ecore_x_connection_get(void); | |
| EAPI void ecore_x_sync(void); | | EAPI int | |
| EAPI void ecore_x_killall(Ecore_X_Window root); | | ecore_x_fd_get(void); | |
| EAPI void ecore_x_kill(Ecore_X_Window win); | | EAPI Ecore_X_Screen * | |
| EAPI int ecore_x_dpi_get(void); | | ecore_x_default_screen_get(void); | |
| EAPI Eina_Bool ecore_x_bell(int percent); | | EAPI void | |
| | | ecore_x_screen_size_get(const Ecore_X_Screen *screen, | |
| EAPI Ecore_X_Time ecore_x_current_time_get(void); | | int *w, | |
| | | int *h); | |
| EAPI void ecore_x_error_handler_set(void (*func)(void *d | | EAPI int | |
| ata), const void *data); | | ecore_x_screen_count_get(void); | |
| EAPI void ecore_x_io_error_handler_set(void (*func)( | | EAPI int | |
| void *data), c | | ecore_x_screen_index_get(const Ecore_X_Screen *screen); | |
| onst void *data); | | EAPI Ecore_X_Screen * | |
| EAPI int ecore_x_error_request_get(void); | | ecore_x_screen_get(int index); | |
| EAPI int ecore_x_error_code_get(void); | | | |
| | | EAPI void | |
| EAPI void ecore_x_event_mask_set(Ecore_X_Window w, | | ecore_x_double_click_time_set(double t); | |
| Ecore_X_Event_Mask mask | | EAPI double | |
| ); | | ecore_x_double_click_time_get(void); | |
| EAPI void ecore_x_event_mask_unset(Ecore_X_Window w, | | EAPI void | |
| Ecore_X_Event_Mask ma | | ecore_x_flush(void); | |
| sk); | | EAPI void | |
| | | ecore_x_sync(void); | |
| EAPI Eina_Bool ecore_x_selection_notify_send(Ecore_X_Window r | | EAPI void | |
| equestor, | | ecore_x_killall(Ecore_X_Window root); | |
| Ecore_X_Atom s | | EAPI void | |
| election, | | ecore_x_kill(Ecore_X_Window win); | |
| Ecore_X_Atom t | | EAPI int | |
| arget, | | ecore_x_dpi_get(void); | |
| Ecore_X_Atom p | | EAPI Eina_Bool | |
| roperty, | | ecore_x_bell(int percent); | |
| Ecore_X_Time t | | EAPI unsigned int | |
| ime); | | ecore_x_visual_id_get(Ecore_X_Visual visual); | |
| EAPI void ecore_x_selection_primary_prefetch(void); | | | |
| EAPI void ecore_x_selection_primary_fetch(void); | | EAPI Ecore_X_Visual | |
| EAPI Eina_Bool ecore_x_selection_primary_set(Ecore_X_Window w | | ecore_x_default_visual_get(Ecore_X_Display *disp, | |
| , | | Ecore_X_Screen *screen); | |
| const void *d | | EAPI Ecore_X_Colormap | |
| ata, | | ecore_x_default_colormap_get(Ecore_X_Display *disp, | |
| int s | | Ecore_X_Screen *screen); | |
| ize); | | EAPI int | |
| EAPI Eina_Bool ecore_x_selection_primary_clear(void); | | ecore_x_default_depth_get(Ecore_X_Display *disp, | |
| EAPI void ecore_x_selection_secondary_prefetch(void); | | Ecore_X_Screen *screen); | |
| EAPI void ecore_x_selection_secondary_fetch(void); | | | |
| EAPI Eina_Bool ecore_x_selection_secondary_set(Ecore_X_Window | | EAPI Ecore_X_Time | |
| w, | | ecore_x_current_time_get(void); | |
| const void | | | |
| *data, | | EAPI void | |
| int | | ecore_x_error_handler_set(void (*func)(void *data), | |
| size); | | const void *data); | |
| EAPI Eina_Bool ecore_x_selection_secondary_clear(void); | | EAPI void | |
| EAPI void ecore_x_selection_xdnd_prefetch(void); | | ecore_x_io_error_handler_set(void (*func)(void *data), | |
| EAPI void ecore_x_selection_xdnd_fetch(void); | | const void *data); | |
| EAPI Eina_Bool ecore_x_selection_xdnd_set(Ecore_X_Window w, | | EAPI int | |
| const void *data | | ecore_x_error_request_get(void); | |
| , | | EAPI int | |
| int size | | ecore_x_error_code_get(void); | |
| ); | | | |
| EAPI Eina_Bool ecore_x_selection_xdnd_clear(void); | | EAPI void | |
| EAPI void ecore_x_selection_clipboard_prefetch(void); | | ecore_x_event_mask_set(Ecore_X_Window w, | |
| EAPI void ecore_x_selection_clipboard_fetch(void); | | Ecore_X_Event_Mask mask); | |
| EAPI Eina_Bool ecore_x_selection_clipboard_set(Ecore_X_Window | | EAPI void | |
| w, | | ecore_x_event_mask_unset(Ecore_X_Window w, | |
| const void | | Ecore_X_Event_Mask mask); | |
| *data, | | | |
| int | | EAPI Eina_Bool | |
| size); | | ecore_x_selection_notify_send(Ecore_X_Window requestor, | |
| EAPI Eina_Bool ecore_x_selection_clipboard_clear(void); | | Ecore_X_Atom selection, | |
| EAPI void ecore_x_selection_primary_request(Ecore_X_Wind | | Ecore_X_Atom target, | |
| ow w, | | Ecore_X_Atom property, | |
| const char | | Ecore_X_Time time); | |
| *target); | | EAPI Eina_Bool | |
| EAPI void ecore_x_selection_secondary_request(Ecore_X_Wi | | ecore_x_selection_primary_set(Ecore_X_Window w, | |
| ndow w, | | const void *data, | |
| const char | | int size); | |
| *target); | | EAPI Eina_Bool | |
| EAPI void ecore_x_selection_xdnd_request(Ecore_X_Window | | ecore_x_selection_primary_clear(void); | |
| w, | | EAPI Eina_Bool | |
| const char * | | ecore_x_selection_secondary_set(Ecore_X_Window w, | |
| target); | | const void *data, | |
| EAPI void ecore_x_selection_clipboard_request(Ecore_X_Wi | | int size); | |
| ndow w, | | EAPI Eina_Bool | |
| const char | | ecore_x_selection_secondary_clear(void); | |
| *target); | | EAPI Eina_Bool | |
| EAPI Eina_Bool ecore_x_selection_convert(Ecore_X_Atom select | | ecore_x_selection_xdnd_set(Ecore_X_Window w, | |
| ion, | | const void *data, | |
| Ecore_X_Atom target | | int size); | |
| , | | EAPI Eina_Bool | |
| void **data_r | | ecore_x_selection_xdnd_clear(void); | |
| et, | | EAPI Eina_Bool | |
| int *len, | | ecore_x_selection_clipboard_set(Ecore_X_Window w, | |
| Ecore_X_Atom *targpr | | const void *data, | |
| op, | | int size); | |
| int *targsi | | EAPI Eina_Bool | |
| ze); | | ecore_x_selection_clipboard_clear(void); | |
| EAPI void ecore_x_selection_converter_add(char *target, | | EAPI void | |
| Eina_Bool (*func)( | | ecore_x_selection_primary_request(Ecore_X_Window w, | |
| char *targ | | const char *target); | |
| et, | | EAPI void | |
| void *data | | ecore_x_selection_secondary_request(Ecore_X_Window w, | |
| , | | const char *target); | |
| int size | | EAPI void | |
| , | | ecore_x_selection_xdnd_request(Ecore_X_Window w, | |
| void **data | | const char *target); | |
| _ret, | | EAPI void | |
| int *size | | ecore_x_selection_clipboard_request(Ecore_X_Window w, | |
| _ret, | | const char *target); | |
| Ecore_X_Ato | | EAPI Eina_Bool | |
| m *, | | ecore_x_selection_convert(Ecore_X_Atom selection, | |
| int *)); | | Ecore_X_Atom target, | |
| EAPI void ecore_x_selection_converter_atom_add(Ecore_X_Atom target, Ei | | void **data_ret, | |
| na_Bool (*func)( | | int *len, | |
| char *target | | Ecore_X_Atom *targprop, | |
| , | | int *targsize); | |
| void *data, | | EAPI void | |
| int size, | | ecore_x_selection_converter_add(char *target, | |
| void **data_r | | Eina_Bool (*func)(char *target, | |
| et, | | void *data, | |
| int *size_r | | int size, | |
| et, | | void **data_ret, | |
| | | int *size_ret, | |
| | | Ecore_X_Atom *, | |
| | | int *)); | |
| | | EAPI void | |
| | | ecore_x_selection_converter_atom_add(Ecore_X_Atom target, | |
| | | Eina_Bool (*func)(char *target, | |
| | | void *data, | |
| | | int size, | |
| | | void **data_ret, | |
| | | int *size_ret, | |
| Ecore_X_Atom *tprop, | | Ecore_X_Atom *tprop, | |
|
| int *tsize) | | int *tsize)); | |
| ); | | EAPI void | |
| EAPI void ecore_x_selection_converter_del(char *target); | | ecore_x_selection_converter_del(char *target); | |
| EAPI void ecore_x_selection_converter_atom_del( | | EAPI void | |
| Ecore_X_Atom target); | | ecore_x_selection_converter_atom_del(Ecore_X_Atom target); | |
| EAPI void ecore_x_selection_parser_add(const char *target, | | EAPI void | |
| void *(*func)(const c | | ecore_x_selection_parser_add(const char *target, | |
| har *target, | | void *(*func)(const char *target, void *data, | |
| void *d | | int size, int format)); | |
| ata, int size, | | EAPI void | |
| int for | | ecore_x_selection_parser_del(const char *target); | |
| mat)); | | EAPI void | |
| EAPI void ecore_x_selection_parser_del(const char *target); | | ecore_x_selection_owner_set(Ecore_X_Window win, | |
| | | Ecore_X_Atom atom, | |
| EAPI void ecore_x_dnd_aware_set(Ecore_X_Window win, Eina_Boo | | Ecore_X_Time tm); | |
| l on); | | EAPI Ecore_X_Window | |
| EAPI void ecore_x_dnd_version_get_prefetch(Ecore_X_Window wi | | ecore_x_selection_owner_get(Ecore_X_Atom atom); | |
| ndow); | | | |
| EAPI void ecore_x_dnd_version_get_fetch(void); | | EAPI void | |
| EAPI int ecore_x_dnd_version_get(Ecore_X_Window win); | | ecore_x_dnd_aware_set(Ecore_X_Window win, | |
| EAPI void ecore_x_dnd_type_get_prefetch(Ecore_X_Window windo | | Eina_Bool on); | |
| w); | | EAPI int | |
| EAPI void ecore_x_dnd_type_get_fetch(void); | | ecore_x_dnd_version_get(Ecore_X_Window win); | |
| EAPI Eina_Bool ecore_x_dnd_type_isset(Ecore_X_Window win, | | EAPI Eina_Bool | |
| const char *type); | | ecore_x_dnd_type_isset(Ecore_X_Window win, | |
| EAPI void ecore_x_dnd_type_set(Ecore_X_Window win, | | const char *type); | |
| const char *type, | | EAPI void | |
| Eina_Bool on); | | ecore_x_dnd_type_set(Ecore_X_Window win, | |
| EAPI void ecore_x_dnd_types_set(Ecore_X_Window win, | | const char *type, | |
| const char **types, | | Eina_Bool on); | |
| unsigned int num_types); | | EAPI void | |
| EAPI void ecore_x_dnd_actions_set(Ecore_X_Window win, | | ecore_x_dnd_types_set(Ecore_X_Window win, | |
| Ecore_X_Atom *actions, | | const char **types, | |
| unsigned int num_actions | | unsigned int num_types); | |
| ); | | EAPI void | |
| EAPI void ecore_x_dnd_begin_prefetch(Ecore_X_Window source); | | ecore_x_dnd_actions_set(Ecore_X_Window win, | |
| EAPI void ecore_x_dnd_begin_fetch(void); | | Ecore_X_Atom *actions, | |
| EAPI Eina_Bool ecore_x_dnd_begin(Ecore_X_Window source, | | unsigned int num_actions); | |
| unsigned char *data, | | EAPI Eina_Bool | |
| int size); | | ecore_x_dnd_begin(Ecore_X_Window source, | |
| EAPI Eina_Bool ecore_x_dnd_drop(void); | | unsigned char *data, | |
| EAPI void ecore_x_dnd_send_status(Eina_Bool will_acc | | int size); | |
| ept, | | EAPI Eina_Bool | |
| Eina_Bool suppress | | ecore_x_dnd_drop(void); | |
| , | | EAPI void | |
| Ecore_X_Rectangle rectangl | | ecore_x_dnd_send_status(Eina_Bool will_accept, | |
| e, | | Eina_Bool suppress, | |
| Ecore_X_Atom action); | | Ecore_X_Rectangle rectangle, | |
| EAPI void ecore_x_dnd_send_finished(void); | | Ecore_X_Atom action); | |
| EAPI void ecore_x_dnd_source_action_set(Ecore_X_Atom action) | | EAPI void | |
| ; | | ecore_x_dnd_send_finished(void); | |
| EAPI Ecore_X_Atom ecore_x_dnd_source_action_get(void); | | EAPI void | |
| EAPI void ecore_x_dnd_callback_pos_update_set(void (*cb)(voi | | ecore_x_dnd_source_action_set(Ecore_X_Atom action); | |
| d *, Ecore_X_Xdnd_Position *data), | | EAPI Ecore_X_Atom | |
| const void *dat | | ecore_x_dnd_source_action_get(void); | |
| a); | | EAPI void | |
| | | ecore_x_dnd_callback_pos_update_set(void (*cb)(void *, | |
| EAPI Ecore_X_Window ecore_x_window_new(Ecore_X_Window parent, | | Ecore_X_Xdnd_Position *data) | |
| int x, | | , | |
| int y, | | const void *data); | |
| int w, | | | |
| int h); | | EAPI Ecore_X_Window | |
| EAPI Ecore_X_Window ecore_x_window_override_new(Ecore_X_Window parent, | | ecore_x_window_new(Ecore_X_Window parent, | |
| int x, | | int x, | |
| int y, | | int y, | |
| int w, | | int w, | |
| int h); | | int h); | |
| EAPI int ecore_x_window_argb_get(Ecore_X_Window win); | | EAPI Ecore_X_Window | |
| EAPI Ecore_X_Window ecore_x_window_manager_argb_new(Ecore_X_Window par | | ecore_x_window_override_new(Ecore_X_Window parent, | |
| ent, | | int x, | |
| int x, | | int y, | |
| int y, | | int w, | |
| int w, | | int h); | |
| int h); | | EAPI int | |
| EAPI Ecore_X_Window ecore_x_window_argb_new(Ecore_X_Window parent, | | ecore_x_window_argb_get(Ecore_X_Window win); | |
| int x, | | EAPI Ecore_X_Window | |
| int y, | | ecore_x_window_manager_argb_new(Ecore_X_Window parent, | |
| int w, | | int x, | |
| int h); | | int y, | |
| EAPI Ecore_X_Window ecore_x_window_override_argb_new(Ecore_X_Window pa | | int w, | |
| rent, | | int h); | |
| int x, | | EAPI Ecore_X_Window | |
| int y, | | ecore_x_window_argb_new(Ecore_X_Window parent, | |
| int w, | | int x, | |
| int h) | | int y, | |
| ; | | int w, | |
| EAPI Ecore_X_Window ecore_x_window_input_new(Ecore_X_Window parent, | | int h); | |
| int x, | | EAPI Ecore_X_Window | |
| int y, | | ecore_x_window_override_argb_new(Ecore_X_Window parent, | |
| int w, | | int x, | |
| int h); | | int y, | |
| EAPI void ecore_x_window_configure( | | int w, | |
| Ecore_X_Window win, | | int h); | |
| Ecore_X_Window_Configure_Mask | | EAPI Ecore_X_Window | |
| mask, | | ecore_x_window_input_new(Ecore_X_Window parent, | |
| int x, | | int x, | |
| int y, | | int y, | |
| int w, | | int w, | |
| int h, | | int h); | |
| int border_width, | | EAPI void | |
| Ecore_X_Window sibling, | | ecore_x_window_configure(Ecore_X_Window win, | |
| int stack_mode); | | Ecore_X_Window_Configure_Mask mask, | |
| EAPI void ecore_x_window_cursor_set(Ecore_X_Window win, | | int x, | |
| Ecore_X_Cursor c); | | int y, | |
| EAPI void ecore_x_window_free(Ecore_X_Window win); | | int w, | |
| EAPI void ecore_x_window_ignore_set(Ecore_X_Window win, | | int h, | |
| int ignore); | | int border_width, | |
| EAPI Ecore_X_Window * ecore_x_window_ignore_list(int *num); | | Ecore_X_Window sibling, | |
| | | int stack_mode); | |
| EAPI void ecore_x_window_delete_request_send( | | EAPI void | |
| Ecore_X_Window win); | | ecore_x_window_cursor_set(Ecore_X_Window win, | |
| EAPI void ecore_x_window_show(Ecore_X_Window win); | | Ecore_X_Cursor c); | |
| EAPI void ecore_x_window_hide(Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_window_move(Ecore_X_Window win, | | ecore_x_window_free(Ecore_X_Window win); | |
| int x, | | EAPI void | |
| int y); | | ecore_x_window_ignore_set(Ecore_X_Window win, | |
| EAPI void ecore_x_window_resize(Ecore_X_Window win, | | int ignore); | |
| int w, | | EAPI Ecore_X_Window * | |
| int h); | | ecore_x_window_ignore_list(int *num); | |
| EAPI void ecore_x_window_move_resize(Ecore_X_Window win, | | | |
| int x, | | EAPI void | |
| int y, | | ecore_x_window_delete_request_send(Ecore_X_Window win); | |
| int w, | | EAPI void | |
| int h); | | ecore_x_window_show(Ecore_X_Window win); | |
| EAPI void ecore_x_window_focus(Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_window_focus_at_time(Ecore_X_Window win, | | ecore_x_window_hide(Ecore_X_Window win); | |
| Ecore_X_Time t); | | EAPI void | |
| EAPI void ecore_x_get_input_focus_prefetch(void); | | ecore_x_window_move(Ecore_X_Window win, | |
| EAPI void ecore_x_get_input_focus_fetch(void); | | int x, | |
| EAPI Ecore_X_Window ecore_x_window_focus_get(void); | | int y); | |
| EAPI void ecore_x_window_raise(Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_window_lower(Ecore_X_Window win); | | ecore_x_window_resize(Ecore_X_Window win, | |
| EAPI void ecore_x_window_reparent(Ecore_X_Window win, | | int w, | |
| Ecore_X_Window new_parent, | | int h); | |
| int x, | | EAPI void | |
| int y); | | ecore_x_window_move_resize(Ecore_X_Window win, | |
| EAPI void ecore_x_window_size_get(Ecore_X_Window win, | | int x, | |
| int *w, | | int y, | |
| int *h); | | int w, | |
| EAPI void ecore_x_window_geometry_get(Ecore_X_Window win, | | int h); | |
| int *x, | | EAPI void | |
| int *y, | | ecore_x_window_focus(Ecore_X_Window win); | |
| int *w, | | EAPI void | |
| int *h); | | ecore_x_window_focus_at_time(Ecore_X_Window win, | |
| EAPI int ecore_x_window_border_width_get( | | Ecore_X_Time t); | |
| Ecore_X_Window win); | | EAPI Ecore_X_Window | |
| EAPI void ecore_x_window_border_width_set( | | ecore_x_window_focus_get(void); | |
| Ecore_X_Window win, | | EAPI void | |
| int width); | | ecore_x_window_raise(Ecore_X_Window win); | |
| EAPI int ecore_x_window_depth_get(Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_window_cursor_show(Ecore_X_Window win, | | ecore_x_window_lower(Ecore_X_Window win); | |
| Eina_Bool show); | | EAPI void | |
| EAPI void ecore_x_window_defaults_set(Ecore_X_Window win); | | ecore_x_window_reparent(Ecore_X_Window win, | |
| EAPI int ecore_x_window_visible_get(Ecore_X_Window win); | | Ecore_X_Window new_parent, | |
| EAPI Ecore_X_Window ecore_x_window_shadow_tree_at_xy_with_skip_get( | | int x, | |
| Ecore_X_Window base, | | int y); | |
| int x, | | EAPI void | |
| int y, | | ecore_x_window_size_get(Ecore_X_Window win, | |
| Ecore_X_Window *skip, | | int *w, | |
| int skip_num); | | int *h); | |
| EAPI Ecore_X_Window ecore_x_window_shadow_parent_get( | | EAPI void | |
| Ecore_X_Window root, | | ecore_x_window_geometry_get(Ecore_X_Window win, | |
| Ecore_X_Window win); | | int *x, | |
| EAPI void ecore_x_window_shadow_tree_flush(void); | | int *y, | |
| EAPI Ecore_X_Window ecore_x_window_root_get(Ecore_X_Window win); | | int *w, | |
| EAPI Ecore_X_Window ecore_x_window_at_xy_get(int x, int y); | | int *h); | |
| EAPI Ecore_X_Window ecore_x_window_at_xy_with_skip_get(int | | EAPI int | |
| x, | | ecore_x_window_border_width_get(Ecore_X_Window win); | |
| int | | EAPI void | |
| y, | | ecore_x_window_border_width_set(Ecore_X_Window win, | |
| Ecore_X_Window | | int width); | |
| *skip, | | EAPI int | |
| int | | ecore_x_window_depth_get(Ecore_X_Window win); | |
| skip_num); | | EAPI void | |
| EAPI Ecore_X_Window ecore_x_window_at_xy_begin_get( | | ecore_x_window_cursor_show(Ecore_X_Window win, | |
| Ecore_X_Window begin, | | Eina_Bool show); | |
| int x, | | EAPI void | |
| int y); | | ecore_x_window_defaults_set(Ecore_X_Window win); | |
| EAPI void ecore_x_query_tree_prefetch( | | EAPI int | |
| Ecore_X_Window window); | | ecore_x_window_visible_get(Ecore_X_Window win); | |
| EAPI void ecore_x_query_tree_fetch(void); | | EAPI Ecore_X_Window | |
| EAPI Ecore_X_Window ecore_x_window_parent_get(Ecore_X_Window win); | | ecore_x_window_shadow_tree_at_xy_with_skip_get(Ecore_X_Window base, | |
| | | int x, | |
| EAPI void ecore_x_window_background_color_set( | | int y, | |
| Ecore_X_Window win, | | Ecore_X_Window *skip, | |
| unsigned | | int skip_num); | |
| short r, | | EAPI Ecore_X_Window | |
| unsigned | | ecore_x_window_shadow_parent_get(Ecore_X_Window root, | |
| short g, | | Ecore_X_Window win); | |
| unsigned | | EAPI void | |
| short b); | | ecore_x_window_shadow_tree_flush(void); | |
| EAPI void ecore_x_window_gravity_set(Ecore_X_Window win, | | EAPI Ecore_X_Window | |
| Ecore_X_Gravity grav); | | ecore_x_window_root_get(Ecore_X_Window win); | |
| EAPI void ecore_x_window_pixel_gravity_set( | | EAPI Ecore_X_Window | |
| Ecore_X_Window win, | | ecore_x_window_at_xy_get(int x, | |
| Ecore_X_Gravity | | int y); | |
| grav); | | EAPI Ecore_X_Window | |
| EAPI void ecore_x_window_pixmap_set(Ecore_X_Window win, | | ecore_x_window_at_xy_with_skip_get(int x, | |
| Ecore_X_Pixmap pmap); | | int y, | |
| EAPI void ecore_x_window_area_clear(Ecore_X_Window win, | | Ecore_X_Window *skip, | |
| int x, | | int skip_num); | |
| int y, | | EAPI Ecore_X_Window | |
| int w, | | ecore_x_window_at_xy_begin_get(Ecore_X_Window begin, | |
| int h); | | int x, | |
| EAPI void ecore_x_window_area_expose(Ecore_X_Window win, | | int y); | |
| int x, | | EAPI Ecore_X_Window | |
| int y, | | ecore_x_window_parent_get(Ecore_X_Window win); | |
| int w, | | | |
| int h); | | EAPI void | |
| EAPI void ecore_x_window_override_set(Ecore_X_Window win, | | ecore_x_window_background_color_set(Ecore_X_Window win, | |
| Eina_Bool override); | | unsigned short r, | |
| | | unsigned short g, | |
| EAPI void ecore_x_window_prop_card32_set( | | unsigned short b); | |
| Ecore_X_Window win, | | EAPI void | |
| Ecore_X_Atom atom, | | ecore_x_window_gravity_set(Ecore_X_Window win, | |
| unsigned int *val, | | Ecore_X_Gravity grav); | |
| unsigned int num); | | EAPI void | |
| EAPI void ecore_x_window_prop_card32_get_prefetch( | | ecore_x_window_pixel_gravity_set(Ecore_X_Window win, | |
| Ecore_X_Window window, | | Ecore_X_Gravity grav); | |
| Ecore_X_Atom | | EAPI void | |
| atom); | | ecore_x_window_pixmap_set(Ecore_X_Window win, | |
| EAPI void ecore_x_window_prop_card32_get_fetch(void); | | Ecore_X_Pixmap pmap); | |
| EAPI int ecore_x_window_prop_card32_get( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_window_area_clear(Ecore_X_Window win, | |
| Ecore_X_Atom atom, | | int x, | |
| unsigned int *val, | | int y, | |
| unsigned int len); | | int w, | |
| EAPI int ecore_x_window_prop_card32_list_get( | | int h); | |
| Ecore_X_Window win, | | EAPI void | |
| Ecore_X_Atom | | ecore_x_window_area_expose(Ecore_X_Window win, | |
| atom, | | int x, | |
| unsigned int | | int y, | |
| **plst); | | int w, | |
| | | int h); | |
| EAPI void ecore_x_window_prop_xid_set(Ecore_X_Window win, | | EAPI void | |
| Ecore_X_Atom atom, | | ecore_x_window_override_set(Ecore_X_Window win, | |
| Ecore_X_Atom type, | | Eina_Bool override); | |
| Ecore_X_ID *lst, | | | |
| unsigned int num); | | EAPI void | |
| EAPI void ecore_x_window_prop_xid_get_prefetch( | | ecore_x_window_prop_card32_set(Ecore_X_Window win, | |
| Ecore_X_Window window, | | Ecore_X_Atom atom, | |
| Ecore_X_Atom | | unsigned int *val, | |
| atom, | | unsigned int num); | |
| Ecore_X_Atom | | EAPI int | |
| type); | | ecore_x_window_prop_card32_get(Ecore_X_Window win, | |
| EAPI void ecore_x_window_prop_xid_get_fetch(void); | | Ecore_X_Atom atom, | |
| EAPI int ecore_x_window_prop_xid_get(Ecore_X_Window win, | | unsigned int *val, | |
| Ecore_X_Atom atom, | | unsigned int len); | |
| Ecore_X_Atom type, | | EAPI int | |
| Ecore_X_ID *lst, | | ecore_x_window_prop_card32_list_get(Ecore_X_Window win, | |
| unsigned int len); | | Ecore_X_Atom atom, | |
| EAPI int ecore_x_window_prop_xid_list_get( | | unsigned int **plst); | |
| Ecore_X_Window win, | | | |
| Ecore_X_Atom | | EAPI void | |
| atom, | | ecore_x_window_prop_xid_set(Ecore_X_Window win, | |
| Ecore_X_Atom | | Ecore_X_Atom atom, | |
| type, | | Ecore_X_Atom type, | |
| Ecore_X_ID ** | | Ecore_X_ID *lst, | |
| plst); | | unsigned int num); | |
| EAPI void ecore_x_window_prop_xid_list_change( | | EAPI int | |
| Ecore_X_Window win, | | ecore_x_window_prop_xid_get(Ecore_X_Window win, | |
| Ecore_X_Atom | | Ecore_X_Atom atom, | |
| atom, | | Ecore_X_Atom type, | |
| Ecore_X_Atom | | Ecore_X_ID *lst, | |
| type, | | unsigned int len); | |
| Ecore_X_ID | | EAPI int | |
| item, | | ecore_x_window_prop_xid_list_get(Ecore_X_Window win, | |
| int op); | | Ecore_X_Atom atom, | |
| EAPI void ecore_x_window_prop_atom_set(Ecore_X_Window win, | | Ecore_X_Atom type, | |
| Ecore_X_Atom atom, | | Ecore_X_ID **plst); | |
| Ecore_X_Atom *val, | | EAPI void | |
| unsigned int num); | | ecore_x_window_prop_xid_list_change(Ecore_X_Window win, | |
| EAPI void ecore_x_window_prop_atom_get_prefetch( | | Ecore_X_Atom atom, | |
| Ecore_X_Window window, | | Ecore_X_Atom type, | |
| Ecore_X_Atom | | Ecore_X_ID item, | |
| atom); | | int op); | |
| EAPI void ecore_x_window_prop_atom_get_fetch(void); | | EAPI void | |
| EAPI int ecore_x_window_prop_atom_get(Ecore_X_Window win, | | ecore_x_window_prop_atom_set(Ecore_X_Window win, | |
| Ecore_X_Atom atom, | | Ecore_X_Atom atom, | |
| Ecore_X_Atom *val, | | Ecore_X_Atom *val, | |
| unsigned int len); | | unsigned int num); | |
| EAPI int ecore_x_window_prop_atom_list_get( | | EAPI int | |
| Ecore_X_Window win, | | ecore_x_window_prop_atom_get(Ecore_X_Window win, | |
| Ecore_X_Atom | | Ecore_X_Atom atom, | |
| atom, | | Ecore_X_Atom *val, | |
| Ecore_X_Atom * | | unsigned int len); | |
| *plst); | | EAPI int | |
| EAPI void ecore_x_window_prop_atom_list_change( | | ecore_x_window_prop_atom_list_get(Ecore_X_Window win, | |
| Ecore_X_Window win, | | Ecore_X_Atom atom, | |
| Ecore_X_Atom | | Ecore_X_Atom **plst); | |
| atom, | | EAPI void | |
| Ecore_X_Atom | | ecore_x_window_prop_atom_list_change(Ecore_X_Window win, | |
| item, | | Ecore_X_Atom atom, | |
| int op); | | Ecore_X_Atom item, | |
| EAPI void ecore_x_window_prop_window_set( | | int op); | |
| Ecore_X_Window win, | | EAPI void | |
| Ecore_X_Atom atom, | | ecore_x_window_prop_window_set(Ecore_X_Window win, | |
| Ecore_X_Window * | | Ecore_X_Atom atom, | |
| val, | | Ecore_X_Window *val, | |
| unsigned int num); | | unsigned int num); | |
| EAPI void ecore_x_window_prop_window_get_prefetch( | | EAPI int | |
| Ecore_X_Window window, | | ecore_x_window_prop_window_get(Ecore_X_Window win, | |
| Ecore_X_Atom | | Ecore_X_Atom atom, | |
| atom); | | Ecore_X_Window *val, | |
| EAPI void ecore_x_window_prop_window_get_fetch(void); | | unsigned int len); | |
| EAPI int ecore_x_window_prop_window_get( | | EAPI int | |
| Ecore_X_Window win, | | ecore_x_window_prop_window_list_get(Ecore_X_Window win, | |
| Ecore_X_Atom atom, | | Ecore_X_Atom atom, | |
| Ecore_X_Window * | | Ecore_X_Window **plst); | |
| val, | | | |
| unsigned int len); | | EAPI Ecore_X_Atom | |
| EAPI int ecore_x_window_prop_window_list_get( | | ecore_x_window_prop_any_type(void); | |
| Ecore_X_Window win, | | EAPI void | |
| Ecore_X_Atom | | ecore_x_window_prop_property_set(Ecore_X_Window win, | |
| atom, | | Ecore_X_Atom type, | |
| Ecore_X_Window | | Ecore_X_Atom format, | |
| **plst); | | int size, | |
| | | void *data, | |
| EAPI Ecore_X_Atom ecore_x_window_prop_any_type(void); | | int number); | |
| EAPI void ecore_x_window_prop_property_set( | | EAPI int | |
| Ecore_X_Window win, | | ecore_x_window_prop_property_get(Ecore_X_Window win, | |
| Ecore_X_Atom type, | | Ecore_X_Atom property, | |
| Ecore_X_Atom format, | | Ecore_X_Atom type, | |
| int size, | | int size, | |
| void *data, | | unsigned char **data, | |
| int number); | | int *num); | |
| EAPI void ecore_x_window_prop_property_get_prefetch( | | EAPI void | |
| Ecore_X_Window window, | | ecore_x_window_prop_property_del(Ecore_X_Window win, | |
| Ecore_X_Atom | | Ecore_X_Atom property); | |
| property, | | EAPI Ecore_X_Atom * | |
| Ecore_X_Atom | | ecore_x_window_prop_list(Ecore_X_Window win, | |
| type); | | int *num_ret); | |
| EAPI void ecore_x_window_prop_property_get_fetch(void); | | EAPI void | |
| EAPI int ecore_x_window_prop_property_get( | | ecore_x_window_prop_string_set(Ecore_X_Window win, | |
| Ecore_X_Window win, | | Ecore_X_Atom type, | |
| Ecore_X_Atom property, | | const char *str); | |
| Ecore_X_Atom type, | | EAPI char * | |
| int size, | | ecore_x_window_prop_string_get(Ecore_X_Window win, | |
| unsigned char **data, | | Ecore_X_Atom type); | |
| int *num); | | EAPI Eina_Bool | |
| EAPI void ecore_x_window_prop_property_del( | | ecore_x_window_prop_protocol_isset(Ecore_X_Window win, | |
| Ecore_X_Window win, | | Ecore_X_WM_Protocol protocol); | |
| Ecore_X_Atom property); | | EAPI Ecore_X_WM_Protocol * | |
| EAPI void ecore_x_window_prop_list_prefetch( | | ecore_x_window_prop_protocol_list_get(Ecore_X_Window win, | |
| Ecore_X_Window window); | | int *num_ret); | |
| EAPI void ecore_x_window_prop_list_fetch(void); | | | |
| EAPI Ecore_X_Atom * ecore_x_window_prop_list(Ecore_X_Window win, | | EAPI void | |
| int *num_r | | ecore_x_window_shape_mask_set(Ecore_X_Window win, | |
| et); | | Ecore_X_Pixmap mask); | |
| EAPI void ecore_x_window_prop_string_set( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_window_shape_window_set(Ecore_X_Window win, | |
| Ecore_X_Atom type, | | Ecore_X_Window shape_win); | |
| const char *str); | | EAPI void | |
| EAPI void ecore_x_window_prop_string_get_prefetch( | | ecore_x_window_shape_window_set_xy(Ecore_X_Window win, | |
| Ecore_X_Window window, | | Ecore_X_Window shape_win, | |
| Ecore_X_Atom | | int x, | |
| type); | | int y); | |
| EAPI void ecore_x_window_prop_string_get_fetch(void); | | EAPI void | |
| EAPI char * ecore_x_window_prop_string_get( | | ecore_x_window_shape_rectangle_set(Ecore_X_Window win, | |
| Ecore_X_Window win, | | int x, | |
| Ecore_X_Atom type); | | int y, | |
| EAPI Eina_Bool ecore_x_window_prop_protocol_isset( | | int w, | |
| Ecore_X_Window win, | | int h); | |
| Ecore_X_WM_Protocol protocol); | | EAPI void | |
| EAPI Ecore_X_WM_Protocol * ecore_x_window_prop_protocol_list_get( | | ecore_x_window_shape_rectangles_set(Ecore_X_Window win, | |
| Ecore_X_Window win, | | Ecore_X_Rectangle *rects, | |
| int *num_ret); | | int num); | |
| | | EAPI void | |
| EAPI void ecore_x_window_shape_mask_set(Ecore_X_Window | | ecore_x_window_shape_input_rectangle_set(Ecore_X_Window win, | |
| win, | | int x, | |
| Ecore_X_Pixmap | | int y, | |
| mask); | | int w, | |
| EAPI void ecore_x_window_shape_window_set( | | int h); | |
| Ecore_X_Window win, | | EAPI void | |
| Ecore_X_Window shape_win); | | ecore_x_window_shape_input_rectangles_set(Ecore_X_Window win, | |
| EAPI void ecore_x_window_shape_window_set_xy( | | Ecore_X_Rectangle *rects, | |
| Ecore_X_Window win, | | int num); | |
| Ecore_X_Window shape_win, | | EAPI void | |
| int x, | | ecore_x_window_shape_input_rectangle_add(Ecore_X_Window win, | |
| int y); | | int x, | |
| EAPI void ecore_x_window_shape_rectangle_set( | | int y, | |
| Ecore_X_Window win, | | int w, | |
| int x, | | int h); | |
| int y, | | EAPI void | |
| int w, | | ecore_x_window_shape_rectangle_subtract(Ecore_X_Window win, | |
| int h); | | int x, | |
| EAPI void ecore_x_window_shape_rectangles_set( | | int y, | |
| Ecore_X_Window win, | | int w, | |
| Ecore_X_Rectangle *rects, | | int h); | |
| int num); | | EAPI void | |
| EAPI void ecore_x_window_shape_window_add( | | ecore_x_window_shape_input_rectangle_subtract(Ecore_X_Window win, | |
| Ecore_X_Window win, | | int x, | |
| Ecore_X_Window shape_win); | | int y, | |
| EAPI void ecore_x_window_shape_window_add_xy( | | int w, | |
| Ecore_X_Window win, | | int h); | |
| Ecore_X_Window shape_win, | | EAPI void | |
| int x, | | ecore_x_window_shape_input_window_set_xy(Ecore_X_Window win, | |
| int y); | | Ecore_X_Window shape_win, | |
| EAPI void ecore_x_window_shape_rectangle_add( | | int x, | |
| Ecore_X_Window win, | | int y); | |
| int x, | | EAPI void | |
| int y, | | ecore_x_window_shape_input_window_set(Ecore_X_Window win, | |
| int w, | | Ecore_X_Window shape_win); | |
| int h); | | EAPI void | |
| EAPI void ecore_x_window_shape_rectangle_clip( | | ecore_x_window_shape_window_add(Ecore_X_Window win, | |
| Ecore_X_Window win, | | Ecore_X_Window shape_win); | |
| int x, | | EAPI void | |
| int y, | | ecore_x_window_shape_window_add_xy(Ecore_X_Window win, | |
| int w, | | Ecore_X_Window shape_win, | |
| int h); | | int x, | |
| EAPI void ecore_x_window_shape_rectangles_add( | | int y); | |
| Ecore_X_Window win, | | EAPI void | |
| Ecore_X_Rectangle *rects, | | ecore_x_window_shape_input_window_add_xy(Ecore_X_Window win, | |
| int num); | | Ecore_X_Window shape_win, | |
| EAPI void ecore_x_window_shape_rectangles_get_prefetch( | | int x, | |
| Ecore_X_Window window); | | int y); | |
| EAPI void ecore_x_window_shape_rectangles_get_fetch(voi | | EAPI void | |
| d); | | ecore_x_window_shape_rectangle_add(Ecore_X_Window win, | |
| EAPI Ecore_X_Rectangle * ecore_x_window_shape_rectangles_get( | | int x, | |
| Ecore_X_Window win, | | int y, | |
| int *num_ret); | | int w, | |
| EAPI void ecore_x_window_shape_events_select( | | int h); | |
| Ecore_X_Window win, | | EAPI void | |
| Eina_Bool on); | | ecore_x_window_shape_rectangle_clip(Ecore_X_Window win, | |
| EAPI void ecore_x_window_shape_input_mask_set( | | int x, | |
| Ecore_X_Window win, | | int y, | |
| Ecore_X_Pixmap mask); | | int w, | |
| | | int h); | |
| EAPI Ecore_X_Pixmap ecore_x_pixmap_new(Ecore_X_Window win, | | EAPI void | |
| int w, | | ecore_x_window_shape_input_rectangle_clip(Ecore_X_Window win, | |
| int h, | | int x, | |
| int dep); | | int y, | |
| EAPI void ecore_x_pixmap_free(Ecore_X_Pixmap pmap); | | int w, | |
| EAPI void ecore_x_pixmap_paste(Ecore_X_Pixmap pmap, | | int h); | |
| Ecore_X_Drawable dest, | | EAPI void | |
| Ecore_X_GC gc, | | ecore_x_window_shape_rectangles_add(Ecore_X_Window win, | |
| int sx, | | Ecore_X_Rectangle *rects, | |
| int sy, | | int num); | |
| int w, | | EAPI void | |
| int h, | | ecore_x_window_shape_input_rectangles_add(Ecore_X_Window win, | |
| int dx, | | Ecore_X_Rectangle *rects, | |
| int dy); | | int num); | |
| EAPI void ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap, | | EAPI Ecore_X_Rectangle * | |
| int *x, | | ecore_x_window_shape_rectangles_get(Ecore_X_Window win, | |
| int *y, | | int *num_ret); | |
| int *w, | | EAPI Ecore_X_Rectangle * | |
| int *h); | | ecore_x_window_shape_input_rectangles_get(Ecore_X_Window win, | |
| EAPI int ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap); | | int *num_ret); | |
| | | EAPI void | |
| EAPI Ecore_X_GC ecore_x_gc_new(Ecore_X_Drawable draw, | | ecore_x_window_shape_events_select(Ecore_X_Window win, | |
| Ecore_X_GC_Value_Mask value_mask, | | Eina_Bool on); | |
| const unsigned int *value_list); | | EAPI void | |
| EAPI void ecore_x_gc_free(Ecore_X_GC gc); | | ecore_x_window_shape_input_mask_set(Ecore_X_Window win, | |
| | | Ecore_X_Pixmap mask); | |
| EAPI Eina_Bool ecore_x_client_message32_send(Ecore_X_Window win, | | | |
| Ecore_X_Atom type, | | EAPI Ecore_X_Pixmap | |
| Ecore_X_Event_Mask mask, | | ecore_x_pixmap_new(Ecore_X_Window win, | |
| long d0, | | int w, | |
| long d1, | | int h, | |
| long d2, | | int dep); | |
| long d3, | | EAPI void | |
| long d4); | | ecore_x_pixmap_free(Ecore_X_Pixmap pmap); | |
| EAPI Eina_Bool ecore_x_client_message8_send(Ecore_X_Window win, | | EAPI void | |
| Ecore_X_Atom type, | | ecore_x_pixmap_paste(Ecore_X_Pixmap pmap, | |
| const void *data, | | Ecore_X_Drawable dest, | |
| int len); | | Ecore_X_GC gc, | |
| EAPI Eina_Bool ecore_x_mouse_move_send(Ecore_X_Window win, | | int sx, | |
| int x, | | int sy, | |
| int y); | | int w, | |
| EAPI Eina_Bool ecore_x_mouse_down_send(Ecore_X_Window win, | | int h, | |
| int x, | | int dx, | |
| int y, | | int dy); | |
| int b); | | EAPI void | |
| EAPI Eina_Bool ecore_x_mouse_up_send(Ecore_X_Window win, | | ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap, | |
| int x, | | int *x, | |
| int y, | | int *y, | |
| int b); | | int *w, | |
| | | int *h); | |
| EAPI void ecore_x_drawable_geometry_get_prefetch( | | EAPI int | |
| Ecore_X_Drawable drawable); | | ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap); | |
| EAPI void ecore_x_drawable_geometry_get_fetch(void); | | | |
| EAPI void ecore_x_drawable_geometry_get(Ecore_X_Drawable d, | | EAPI Ecore_X_GC | |
| int *x, | | ecore_x_gc_new(Ecore_X_Drawable draw, | |
| int *y, | | Ecore_X_GC_Value_Mask value_mask, | |
| int *w, | | const unsigned int *value_list); | |
| int *h); | | EAPI void | |
| EAPI int ecore_x_drawable_border_width_get( | | ecore_x_gc_free(Ecore_X_GC gc); | |
| Ecore_X_Drawable d); | | EAPI void | |
| EAPI int ecore_x_drawable_depth_get(Ecore_X_Drawable d); | | ecore_x_gc_foreground_set(Ecore_X_GC gc, | |
| EAPI void ecore_x_drawable_rectangle_fill( | | unsigned long foreground); | |
| Ecore_X_Drawable d, | | EAPI void | |
| Ecore_X_GC gc, | | ecore_x_gc_background_set(Ecore_X_GC gc, | |
| int x, | | unsigned long background); | |
| int y, | | | |
| int width, | | EAPI Eina_Bool | |
| int height); | | ecore_x_client_message32_send(Ecore_X_Window win, | |
| | | Ecore_X_Atom type, | |
| EAPI Eina_Bool ecore_x_cursor_color_supported_get(void | | Ecore_X_Event_Mask mask, | |
| ); | | long d0, | |
| EAPI Ecore_X_Cursor ecore_x_cursor_new(Ecore_X_Window win, | | long d1, | |
| int *pixel | | long d2, | |
| s, | | long d3, | |
| int w, | | long d4); | |
| int h, | | EAPI Eina_Bool | |
| int hot_x | | ecore_x_client_message8_send(Ecore_X_Window win, | |
| , | | Ecore_X_Atom type, | |
| int hot_y | | const void *data, | |
| ); | | int len); | |
| EAPI void ecore_x_cursor_free(Ecore_X_Cursor c); | | EAPI Eina_Bool | |
| EAPI Ecore_X_Cursor ecore_x_cursor_shape_get(int shape); | | ecore_x_mouse_move_send(Ecore_X_Window win, | |
| EAPI void ecore_x_cursor_size_set(int size); | | int x, | |
| EAPI int ecore_x_cursor_size_get(void); | | int y); | |
| | | EAPI Eina_Bool | |
| | | ecore_x_mouse_down_send(Ecore_X_Window win, | |
| | | int x, | |
| | | int y, | |
| | | int b); | |
| | | EAPI Eina_Bool | |
| | | ecore_x_mouse_up_send(Ecore_X_Window win, | |
| | | int x, | |
| | | int y, | |
| | | int b); | |
| | | | |
| | | EAPI void | |
| | | ecore_x_drawable_geometry_get(Ecore_X_Drawable d, | |
| | | int *x, | |
| | | int *y, | |
| | | int *w, | |
| | | int *h); | |
| | | EAPI int | |
| | | ecore_x_drawable_border_width_get(Ecore_X_Drawable d); | |
| | | EAPI int | |
| | | ecore_x_drawable_depth_get(Ecore_X_Drawable d); | |
| | | EAPI void | |
| | | ecore_x_drawable_rectangle_fill(Ecore_X_Drawable d, | |
| | | Ecore_X_GC gc, | |
| | | int x, | |
| | | int y, | |
| | | int width, | |
| | | int height); | |
| | | | |
| | | EAPI Eina_Bool | |
| | | ecore_x_cursor_color_supported_get(void); | |
| | | EAPI Ecore_X_Cursor | |
| | | ecore_x_cursor_new(Ecore_X_Window win, | |
| | | int *pixels, | |
| | | int w, | |
| | | int h, | |
| | | int hot_x, | |
| | | int hot_y); | |
| | | EAPI void | |
| | | ecore_x_cursor_free(Ecore_X_Cursor c); | |
| | | EAPI Ecore_X_Cursor | |
| | | ecore_x_cursor_shape_get(int shape); | |
| | | EAPI void | |
| | | ecore_x_cursor_size_set(int size); | |
| | | EAPI int | |
| | | ecore_x_cursor_size_get(void); | |
| | | | |
| /* FIXME: these funcs need categorising */ | | /* FIXME: these funcs need categorising */ | |
|
| EAPI Ecore_X_Window * ecore_x_window_root_list(int *num_ret); | | EAPI Ecore_X_Window * | |
| EAPI Ecore_X_Window ecore_x_window_root_first_get(void); | | ecore_x_window_root_list(int *num_ret); | |
| EAPI Eina_Bool ecore_x_window_manage(Ecore_X_Window wi | | EAPI Ecore_X_Window | |
| n); | | ecore_x_window_root_first_get(void); | |
| EAPI void ecore_x_window_container_manage( | | EAPI Eina_Bool | |
| Ecore_X_Window win); | | ecore_x_window_manage(Ecore_X_Window win); | |
| EAPI void ecore_x_window_client_manage(Ecore_X_Wi | | EAPI void | |
| ndow win); | | ecore_x_window_container_manage(Ecore_X_Window win); | |
| EAPI void ecore_x_window_sniff(Ecore_X_Window win | | EAPI void | |
| ); | | ecore_x_window_client_manage(Ecore_X_Window win); | |
| EAPI void ecore_x_window_client_sniff(Ecore_X_Win | | EAPI void | |
| dow win); | | ecore_x_window_sniff(Ecore_X_Window win); | |
| EAPI void ecore_x_atom_get_prefetch(const char *n | | EAPI void | |
| ame); | | ecore_x_window_client_sniff(Ecore_X_Window win); | |
| EAPI void ecore_x_atom_get_fetch(void); | | | |
| EAPI Ecore_X_Atom ecore_x_atom_get(const char *name); | | EAPI Ecore_X_Atom | |
| EAPI void ecore_x_atoms_get(const char **names, | | ecore_x_atom_get(const char *name); | |
| int num, | | EAPI void | |
| Ecore_X_Atom *atoms); | | ecore_x_atoms_get(const char **names, | |
| EAPI void ecore_x_get_atom_name_prefetch(Ecore_X_ | | int num, | |
| Atom atom); | | Ecore_X_Atom *atoms); | |
| EAPI void ecore_x_get_atom_name_fetch(void); | | EAPI char * | |
| EAPI char * ecore_x_atom_name_get(Ecore_X_Atom atom | | ecore_x_atom_name_get(Ecore_X_Atom atom); | |
| ); | | | |
| | | EAPI void | |
| EAPI void ecore_x_icccm_init(void); | | ecore_x_icccm_init(void); | |
| EAPI void ecore_x_icccm_state_set( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_icccm_state_set(Ecore_X_Window win, | |
| Ecore_X_Window_State_Hint | | Ecore_X_Window_State_Hint state); | |
| state); | | EAPI Ecore_X_Window_State_Hint | |
| EAPI Ecore_X_Window_State_Hint ecore_x_icccm_state_get(Ecore_X_Window | | ecore_x_icccm_state_get(Ecore_X_Window win); | |
| win); | | EAPI void | |
| EAPI void ecore_x_icccm_delete_window_send( | | ecore_x_icccm_delete_window_send(Ecore_X_Window win, | |
| Ecore_X_Window win, | | Ecore_X_Time t); | |
| Ecore_X_Time t); | | EAPI void | |
| EAPI void ecore_x_icccm_take_focus_send(Ecore_X_W | | ecore_x_icccm_take_focus_send(Ecore_X_Window win, | |
| indow win, | | Ecore_X_Time t); | |
| Ecore_X_T | | EAPI void | |
| ime t); | | ecore_x_icccm_save_yourself_send(Ecore_X_Window win, | |
| EAPI void ecore_x_icccm_save_yourself_send( | | Ecore_X_Time t); | |
| Ecore_X_Window win, | | EAPI void | |
| Ecore_X_Time t); | | ecore_x_icccm_move_resize_send(Ecore_X_Window win, | |
| EAPI void ecore_x_icccm_move_resize_send( | | int x, | |
| Ecore_X_Window win, | | int y, | |
| int x, | | int w, | |
| int y, | | int h); | |
| int w, | | EAPI void | |
| int h); | | ecore_x_icccm_hints_set(Ecore_X_Window win, | |
| EAPI void ecore_x_icccm_hints_set( | | Eina_Bool accepts_focus, | |
| Ecore_X_Window win, | | Ecore_X_Window_State_Hint initial_state, | |
| Eina_Bool accepts_focus, | | Ecore_X_Pixmap icon_pixmap, | |
| Ecore_X_Window_State_Hint | | Ecore_X_Pixmap icon_mask, | |
| initial_state, | | Ecore_X_Window icon_window, | |
| Ecore_X_Pixmap | | Ecore_X_Window window_group, | |
| icon_pixmap, | | Eina_Bool is_urgent); | |
| Ecore_X_Pixmap icon_mask, | | EAPI Eina_Bool | |
| Ecore_X_Window | | ecore_x_icccm_hints_get(Ecore_X_Window win, | |
| icon_window, | | Eina_Bool *accepts_focus, | |
| Ecore_X_Window | | Ecore_X_Window_State_Hint *initial_state, | |
| window_group, | | Ecore_X_Pixmap *icon_pixmap, | |
| Eina_Bool is_urgent); | | Ecore_X_Pixmap *icon_mask, | |
| EAPI Eina_Bool ecore_x_icccm_hints_get(Ecore_X_Window win, | | Ecore_X_Window *icon_window, | |
| Eina_Bool *accepts_fo | | Ecore_X_Window *window_group, | |
| cus, | | Eina_Bool *is_urgent); | |
| Ecore_X_Window_State_Hint *initial_st | | EAPI void | |
| ate, | | ecore_x_icccm_size_pos_hints_set(Ecore_X_Window win, | |
| Ecore_X_Pixmap *icon_pixma | | Eina_Bool request_pos, | |
| p, | | Ecore_X_Gravity gravity, | |
| Ecore_X_Pixmap *icon_mask, | | int min_w, | |
| Ecore_X_Window *icon_windo | | int min_h, | |
| w, | | int max_w, | |
| Ecore_X_Window *window_gro | | int max_h, | |
| up, | | int base_w, | |
| Eina_Bool *is_urgent) | | int base_h, | |
| ; | | int step_x, | |
| EAPI void ecore_x_icccm_size_pos_hints_set(Ecore_X_Window win, | | int step_y, | |
| Eina_Bool request_pos, | | double min_aspect, | |
| Ecore_X_Gravity gravity, | | double max_aspect); | |
| int min_w, int min_h, | | EAPI Eina_Bool | |
| int max_w, int max_h, | | ecore_x_icccm_size_pos_hints_get(Ecore_X_Window win, | |
| int base_w, int base_h, | | Eina_Bool *request_pos, | |
| int step_x, int step_y, | | Ecore_X_Gravity *gravity, | |
| double min_aspect, | | int *min_w, | |
| double max_aspect); | | int *min_h, | |
| EAPI Eina_Bool ecore_x_icccm_size_pos_hints_get(Ecore_X_Window win, | | int *max_w, | |
| Eina_Bool *request_pos, | | int *max_h, | |
| Ecore_X_Gravity *gravity, | | int *base_w, | |
| int *min_w, int *min_h, | | int *base_h, | |
| int *max_w, int *max_h, | | int *step_x, | |
| int *base_w, int *base_h, | | int *step_y, | |
| int *step_x, int *step_y, | | double *min_aspect, | |
| double *min_aspect, | | double *max_aspect); | |
| double *max_aspect); | | EAPI void | |
| EAPI void ecore_x_icccm_title_set(Ecore_X_Window win, const | | ecore_x_icccm_title_set(Ecore_X_Window win, | |
| char *t); | | const char *t); | |
| EAPI char * ecore_x_icccm_title_get(Ecore_X_Window win); | | EAPI char * | |
| EAPI void ecore_x_icccm_protocol_atoms_set(Ecore_X_Window wi | | ecore_x_icccm_title_get(Ecore_X_Window win); | |
| n, | | EAPI void | |
| Ecore_X_Atom *pr | | ecore_x_icccm_protocol_atoms_set(Ecore_X_Window win, | |
| otos, | | Ecore_X_Atom *protos, | |
| int nu | | int num); | |
| m); | | EAPI void | |
| EAPI void ecore_x_icccm_protocol_set(Ecore_X_Window win | | ecore_x_icccm_protocol_set(Ecore_X_Window win, | |
| , | | Ecore_X_WM_Protocol protocol, | |
| Ecore_X_WM_Protocol pro | | Eina_Bool on); | |
| tocol, | | EAPI Eina_Bool | |
| Eina_Bool on) | | ecore_x_icccm_protocol_isset(Ecore_X_Window win, | |
| ; | | Ecore_X_WM_Protocol protocol); | |
| EAPI Eina_Bool ecore_x_icccm_protocol_isset(Ecore_X_Window w | | EAPI void | |
| in, | | ecore_x_icccm_name_class_set(Ecore_X_Window win, | |
| Ecore_X_WM_Protocol p | | const char *n, | |
| rotocol); | | const char *c); | |
| EAPI void ecore_x_icccm_name_class_set(Ecore_X_Window win, | | EAPI void | |
| const char *n, | | ecore_x_icccm_name_class_get(Ecore_X_Window win, | |
| const char *c); | | char **n, | |
| EAPI void ecore_x_icccm_name_class_get(Ecore_X_Window win, | | char **c); | |
| char **n, | | EAPI char * | |
| char **c); | | ecore_x_icccm_client_machine_get(Ecore_X_Window win); | |
| EAPI char * ecore_x_icccm_client_machine_get(Ecore_X_Window wi | | EAPI void | |
| n); | | ecore_x_icccm_command_set(Ecore_X_Window win, | |
| EAPI void ecore_x_icccm_command_set(Ecore_X_Window win, | | int argc, | |
| int argc, | | char **argv); | |
| char **argv); | | EAPI void | |
| EAPI void ecore_x_icccm_command_get(Ecore_X_Window win, | | ecore_x_icccm_command_get(Ecore_X_Window win, | |
| int *argc, | | int *argc, | |
| char ***argv); | | char ***argv); | |
| EAPI char * ecore_x_icccm_icon_name_get(Ecore_X_Window win); | | EAPI char * | |
| EAPI void ecore_x_icccm_icon_name_set(Ecore_X_Window win, | | ecore_x_icccm_icon_name_get(Ecore_X_Window win); | |
| const char *t); | | EAPI void | |
| EAPI void ecore_x_icccm_colormap_window_set(Ecore_X_Window w | | ecore_x_icccm_icon_name_set(Ecore_X_Window win, | |
| in, | | const char *t); | |
| Ecore_X_Window s | | EAPI void | |
| ubwin); | | ecore_x_icccm_colormap_window_set(Ecore_X_Window win, | |
| EAPI void ecore_x_icccm_colormap_window_unset(Ecore_X_Window | | Ecore_X_Window subwin); | |
| win, | | EAPI void | |
| Ecore_X_Window | | ecore_x_icccm_colormap_window_unset(Ecore_X_Window win, | |
| subwin); | | Ecore_X_Window subwin); | |
| EAPI void ecore_x_icccm_transient_for_set(Ecore_X_Window win | | EAPI void | |
| , | | ecore_x_icccm_transient_for_set(Ecore_X_Window win, | |
| Ecore_X_Window for | | Ecore_X_Window forwin); | |
| win); | | EAPI void | |
| EAPI void ecore_x_icccm_transient_for_unset(Ecore_X_Window w | | ecore_x_icccm_transient_for_unset(Ecore_X_Window win); | |
| in); | | EAPI Ecore_X_Window | |
| EAPI Ecore_X_Window ecore_x_icccm_transient_for_get(Ecore_X_Window win | | ecore_x_icccm_transient_for_get(Ecore_X_Window win); | |
| ); | | EAPI void | |
| EAPI void ecore_x_icccm_window_role_set(Ecore_X_Window win, | | ecore_x_icccm_window_role_set(Ecore_X_Window win, | |
| const char *role) | | const char *role); | |
| ; | | EAPI char * | |
| EAPI char * ecore_x_icccm_window_role_get(Ecore_X_Window win); | | ecore_x_icccm_window_role_get(Ecore_X_Window win); | |
| EAPI void ecore_x_icccm_client_leader_set(Ecore_X_Window win | | EAPI void | |
| , | | ecore_x_icccm_client_leader_set(Ecore_X_Window win, | |
| Ecore_X_Window l); | | Ecore_X_Window l); | |
| EAPI Ecore_X_Window ecore_x_icccm_client_leader_get(Ecore_X_Window win | | EAPI Ecore_X_Window | |
| ); | | ecore_x_icccm_client_leader_get(Ecore_X_Window win); | |
| EAPI void ecore_x_icccm_iconic_request_send(Ecore_X_Window w | | EAPI void | |
| in, | | ecore_x_icccm_iconic_request_send(Ecore_X_Window win, | |
| Ecore_X_Window r | | Ecore_X_Window root); | |
| oot); | | | |
| | | | |
| typedef enum _Ecore_X_MWM_Hint_Func | | typedef enum _Ecore_X_MWM_Hint_Func | |
| { | | { | |
| ECORE_X_MWM_HINT_FUNC_ALL = (1 << 0), | | ECORE_X_MWM_HINT_FUNC_ALL = (1 << 0), | |
| ECORE_X_MWM_HINT_FUNC_RESIZE = (1 << 1), | | ECORE_X_MWM_HINT_FUNC_RESIZE = (1 << 1), | |
| ECORE_X_MWM_HINT_FUNC_MOVE = (1 << 2), | | ECORE_X_MWM_HINT_FUNC_MOVE = (1 << 2), | |
| ECORE_X_MWM_HINT_FUNC_MINIMIZE = (1 << 3), | | ECORE_X_MWM_HINT_FUNC_MINIMIZE = (1 << 3), | |
| ECORE_X_MWM_HINT_FUNC_MAXIMIZE = (1 << 4), | | ECORE_X_MWM_HINT_FUNC_MAXIMIZE = (1 << 4), | |
| ECORE_X_MWM_HINT_FUNC_CLOSE = (1 << 5) | | ECORE_X_MWM_HINT_FUNC_CLOSE = (1 << 5) | |
| } Ecore_X_MWM_Hint_Func; | | } Ecore_X_MWM_Hint_Func; | |
| | | | |
| skipping to change at line 1763 | | skipping to change at line 2003 | |
| } Ecore_X_MWM_Hint_Decor; | | } Ecore_X_MWM_Hint_Decor; | |
| | | | |
| typedef enum _Ecore_X_MWM_Hint_Input | | typedef enum _Ecore_X_MWM_Hint_Input | |
| { | | { | |
| ECORE_X_MWM_HINT_INPUT_MODELESS = 0, | | ECORE_X_MWM_HINT_INPUT_MODELESS = 0, | |
| ECORE_X_MWM_HINT_INPUT_PRIMARY_APPLICATION_MODAL = 1, | | ECORE_X_MWM_HINT_INPUT_PRIMARY_APPLICATION_MODAL = 1, | |
| ECORE_X_MWM_HINT_INPUT_SYSTEM_MODAL = 2, | | ECORE_X_MWM_HINT_INPUT_SYSTEM_MODAL = 2, | |
| ECORE_X_MWM_HINT_INPUT_FULL_APPLICATION_MODAL = 3 | | ECORE_X_MWM_HINT_INPUT_FULL_APPLICATION_MODAL = 3 | |
| } Ecore_X_MWM_Hint_Input; | | } Ecore_X_MWM_Hint_Input; | |
| | | | |
|
| EAPI void ecore_x_mwm_hints_get_prefetch( | | EAPI Eina_Bool | |
| Ecore_X_Window window); | | ecore_x_mwm_hints_get(Ecore_X_Window win, | |
| EAPI void ecore_x_mwm_hints_get_fetch(void); | | Ecore_X_MWM_Hint_Func *fhint, | |
| EAPI Eina_Bool ecore_x_mwm_hints_get( | | Ecore_X_MWM_Hint_Decor *dhint, | |
| Ecore_X_Window win, | | Ecore_X_MWM_Hint_Input *ihint); | |
| Ecore_X_MWM_Hint_Func | | EAPI void | |
| *fhint, | | ecore_x_mwm_borderless_set(Ecore_X_Window win, | |
| Ecore_X_MWM_Hint_Decor | | Eina_Bool borderless); | |
| *dhint, | | | |
| Ecore_X_MWM_Hint_Input | | | |
| *ihint); | | | |
| EAPI void ecore_x_mwm_borderless_set( | | | |
| Ecore_X_Window win, | | | |
| Eina_Bool borderless); | | | |
| | | | |
| /* netwm */ | | /* netwm */ | |
|
| EAPI void ecore_x_netwm_init(void); | | EAPI void | |
| EAPI void ecore_x_netwm_shutdown(void); | | ecore_x_netwm_init(void); | |
| EAPI void ecore_x_netwm_wm_identify( | | EAPI void | |
| Ecore_X_Window root, | | ecore_x_netwm_shutdown(void); | |
| Ecore_X_Window check, | | EAPI void | |
| const char *wm_name); | | ecore_x_netwm_wm_identify(Ecore_X_Window root, | |
| EAPI void ecore_x_netwm_supported_set( | | Ecore_X_Window check, | |
| Ecore_X_Window root, | | const char *wm_name); | |
| Ecore_X_Atom *supported, | | EAPI void | |
| int num); | | ecore_x_netwm_supported_set(Ecore_X_Window root, | |
| EAPI void ecore_x_netwm_supported_get_prefetch( | | Ecore_X_Atom *supported, | |
| Ecore_X_Window root); | | int num); | |
| EAPI void ecore_x_netwm_supported_get_fetch(void); | | EAPI Eina_Bool | |
| EAPI Eina_Bool ecore_x_netwm_supported_get( | | ecore_x_netwm_supported_get(Ecore_X_Window root, | |
| Ecore_X_Window root, | | Ecore_X_Atom **supported, | |
| Ecore_X_Atom **supported, | | int *num); | |
| int *num); | | EAPI void | |
| EAPI void ecore_x_netwm_desk_count_set( | | ecore_x_netwm_desk_count_set(Ecore_X_Window root, | |
| Ecore_X_Window root, | | unsigned int n_desks); | |
| unsigned int n_desks); | | EAPI void | |
| EAPI void ecore_x_netwm_desk_roots_set( | | ecore_x_netwm_desk_roots_set(Ecore_X_Window root, | |
| Ecore_X_Window root, | | Ecore_X_Window *vroots, | |
| Ecore_X_Window *vroots, | | unsigned int n_desks); | |
| unsigned int n_desks); | | EAPI void | |
| EAPI void ecore_x_netwm_desk_names_set( | | ecore_x_netwm_desk_names_set(Ecore_X_Window root, | |
| Ecore_X_Window root, | | const char **names, | |
| const char **names, | | unsigned int n_desks); | |
| unsigned int n_desks); | | EAPI void | |
| EAPI void ecore_x_netwm_desk_size_set( | | ecore_x_netwm_desk_size_set(Ecore_X_Window root, | |
| Ecore_X_Window root, | | unsigned int width, | |
| unsigned int width, | | unsigned int height); | |
| unsigned int height); | | EAPI void | |
| EAPI void ecore_x_netwm_desk_workareas_set( | | ecore_x_netwm_desk_workareas_set(Ecore_X_Window root, | |
| Ecore_X_Window root, | | unsigned int *areas, | |
| unsigned int *areas, | | unsigned int n_desks); | |
| unsigned int n_desks); | | EAPI unsigned int * | |
| EAPI void ecore_x_netwm_desk_current_set( | | ecore_x_netwm_desk_workareas_get(Ecore_X_Window root, | |
| Ecore_X_Window root, | | unsigned int *n_desks); | |
| unsigned int desk); | | EAPI void | |
| EAPI void ecore_x_netwm_desk_viewports_set( | | ecore_x_netwm_desk_current_set(Ecore_X_Window root, | |
| Ecore_X_Window root, | | unsigned int desk); | |
| unsigned int *origins, | | EAPI void | |
| unsigned int n_desks); | | ecore_x_netwm_desk_viewports_set(Ecore_X_Window root, | |
| EAPI void ecore_x_netwm_desk_layout_set( | | unsigned int *origins, | |
| Ecore_X_Window root, | | unsigned int n_desks); | |
| int orientation, | | EAPI void | |
| int columns, | | ecore_x_netwm_desk_layout_set(Ecore_X_Window root, | |
| int rows, | | int orientation, | |
| int starting_corner); | | int columns, | |
| EAPI void ecore_x_netwm_showing_desktop_set( | | int rows, | |
| Ecore_X_Window root, | | int starting_corner); | |
| Eina_Bool on); | | EAPI void | |
| EAPI void ecore_x_netwm_client_list_set( | | ecore_x_netwm_showing_desktop_set(Ecore_X_Window root, | |
| Ecore_X_Window root, | | Eina_Bool on); | |
| Ecore_X_Window *p_clients, | | EAPI void | |
| unsigned int n_clients); | | ecore_x_netwm_client_list_set(Ecore_X_Window root, | |
| EAPI void ecore_x_netwm_client_list_stacking_set( | | Ecore_X_Window *p_clients, | |
| Ecore_X_Window root, | | unsigned int n_clients); | |
| Ecore_X_Window *p_clients, | | EAPI void | |
| unsigned int n_clients); | | ecore_x_netwm_client_list_stacking_set(Ecore_X_Window root, | |
| EAPI void ecore_x_netwm_client_active_set( | | Ecore_X_Window *p_clients, | |
| Ecore_X_Window root, | | unsigned int n_clients); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_netwm_client_active_request( | | ecore_x_netwm_client_active_set(Ecore_X_Window root, | |
| Ecore_X_Window root, | | Ecore_X_Window win); | |
| Ecore_X_Window win, | | EAPI void | |
| int type, | | ecore_x_netwm_client_active_request(Ecore_X_Window root, | |
| Ecore_X_Window current_win); | | Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_name_set(Ecore_X_Window win, | | int type, | |
| const char *name); | | Ecore_X_Window current_win); | |
| EAPI void ecore_x_netwm_name_get_prefetch( | | EAPI void | |
| Ecore_X_Window window); | | ecore_x_netwm_name_set(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_name_get_fetch(void); | | const char *name); | |
| EAPI int ecore_x_netwm_name_get(Ecore_X_Window win, | | EAPI int | |
| char **name); | | ecore_x_netwm_name_get(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_startup_id_set( | | char **name); | |
| Ecore_X_Window win, | | EAPI void | |
| const char *id); | | ecore_x_netwm_startup_id_set(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_startup_id_get_prefetch( | | const char *id); | |
| Ecore_X_Window window); | | EAPI int | |
| EAPI void ecore_x_netwm_startup_id_get_fetch(void); | | ecore_x_netwm_startup_id_get(Ecore_X_Window win, | |
| EAPI int ecore_x_netwm_startup_id_get( | | char **id); | |
| Ecore_X_Window win, | | EAPI void | |
| char **id); | | ecore_x_netwm_visible_name_set(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_visible_name_set( | | const char *name); | |
| Ecore_X_Window win, | | EAPI int | |
| const char *name); | | ecore_x_netwm_visible_name_get(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_visible_name_get_prefetch( | | char **name); | |
| Ecore_X_Window window); | | EAPI void | |
| EAPI void ecore_x_netwm_visible_name_get_fetch(void); | | ecore_x_netwm_icon_name_set(Ecore_X_Window win, | |
| EAPI int ecore_x_netwm_visible_name_get( | | const char *name); | |
| Ecore_X_Window win, | | EAPI int | |
| char **name); | | ecore_x_netwm_icon_name_get(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_icon_name_set( | | char **name); | |
| Ecore_X_Window win, | | EAPI void | |
| const char *name); | | ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_icon_name_get_prefetch( | | const char *name); | |
| Ecore_X_Window window); | | EAPI int | |
| EAPI void ecore_x_netwm_icon_name_get_fetch(void); | | ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win, | |
| EAPI int ecore_x_netwm_icon_name_get( | | char **name); | |
| Ecore_X_Window win, | | EAPI void | |
| char **name); | | ecore_x_netwm_desktop_set(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_visible_icon_name_set( | | unsigned int desk); | |
| Ecore_X_Window win, | | EAPI Eina_Bool | |
| const char *name); | | ecore_x_netwm_desktop_get(Ecore_X_Window win, | |
| EAPI void | | unsigned int *desk); | |
| ecore_x_netwm_visible_icon_name_get_prefetch(Ecore_X_Window | | EAPI void | |
| window); | | ecore_x_netwm_strut_set(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_visible_icon_name_get_fetch( | | int left, | |
| void); | | int right, | |
| EAPI int ecore_x_netwm_visible_icon_name_get( | | int top, | |
| Ecore_X_Window win, | | int bottom); | |
| char **name); | | EAPI Eina_Bool | |
| EAPI void ecore_x_netwm_desktop_set( | | ecore_x_netwm_strut_get(Ecore_X_Window win, | |
| Ecore_X_Window win, | | int *left, | |
| unsigned int desk); | | int *right, | |
| EAPI void ecore_x_netwm_desktop_get_prefetch( | | int *top, | |
| Ecore_X_Window window); | | int *bottom); | |
| EAPI void ecore_x_netwm_desktop_get_fetch(void); | | EAPI void | |
| EAPI Eina_Bool ecore_x_netwm_desktop_get( | | ecore_x_netwm_strut_partial_set(Ecore_X_Window win, | |
| Ecore_X_Window win, | | int left, | |
| unsigned int *desk); | | int right, | |
| EAPI void ecore_x_netwm_strut_set(Ecore_X_Window win, | | int top, | |
| int left, | | int bottom, | |
| int right, | | int left_start_y, | |
| int top, | | int left_end_y, | |
| int bottom); | | int right_start_y, | |
| EAPI void ecore_x_netwm_strut_get_prefetch( | | int right_end_y, | |
| Ecore_X_Window window); | | int top_start_x, | |
| EAPI void ecore_x_netwm_strut_get_fetch(void); | | int top_end_x, | |
| EAPI Eina_Bool ecore_x_netwm_strut_get(Ecore_X_Window win, | | int bottom_start_x, | |
| int *left, | | int bottom_end_x); | |
| int *right, | | EAPI Eina_Bool | |
| int *top, | | ecore_x_netwm_strut_partial_get(Ecore_X_Window win, | |
| int *bottom); | | int *left, | |
| EAPI void ecore_x_netwm_strut_partial_set( | | int *right, | |
| Ecore_X_Window win, | | int *top, | |
| int left, | | int *bottom, | |
| int right, | | int *left_start_y, | |
| int top, | | int *left_end_y, | |
| int bottom, | | int *right_start_y, | |
| int left_start_y, | | int *right_end_y, | |
| int left_end_y, | | int *top_start_x, | |
| int right_start_y, | | int *top_end_x, | |
| int right_end_y, | | int *bottom_start_x, | |
| int top_start_x, | | int *bottom_end_x); | |
| int top_end_x, | | | |
| int bottom_start_x, | | EAPI Eina_Bool | |
| int bottom_end_x); | | ecore_x_netwm_icons_get(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_strut_partial_get_prefetch( | | Ecore_X_Icon **icon, | |
| Ecore_X_Window window); | | int *num); | |
| EAPI void ecore_x_netwm_strut_partial_get_fetch(void); | | EAPI void | |
| EAPI Eina_Bool ecore_x_netwm_strut_partial_get( | | ecore_x_netwm_icon_geometry_set(Ecore_X_Window win, | |
| Ecore_X_Window win, | | int x, | |
| int *left, | | int y, | |
| int *right, | | int width, | |
| int *top, | | int height); | |
| int *bottom, | | EAPI Eina_Bool | |
| int *left_start_y, | | ecore_x_netwm_icon_geometry_get(Ecore_X_Window win, | |
| int *left_end_y, | | int *x, | |
| int *right_start_y, | | int *y, | |
| int *right_end_y, | | int *width, | |
| int *top_start_x, | | int *height); | |
| int *top_end_x, | | EAPI void | |
| int *bottom_start_x, | | ecore_x_netwm_pid_set(Ecore_X_Window win, | |
| int *bottom_end_x); | | int pid); | |
| EAPI void ecore_x_netwm_icons_get_prefetch( | | EAPI Eina_Bool | |
| Ecore_X_Window window); | | ecore_x_netwm_pid_get(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_icons_get_fetch(voi | | int *pid); | |
| d); | | EAPI void | |
| EAPI Eina_Bool ecore_x_netwm_icons_get(Ecore_X_W | | ecore_x_netwm_handled_icons_set(Ecore_X_Window win); | |
| indow win, | | EAPI Eina_Bool | |
| Eco | | ecore_x_netwm_handled_icons_get(Ecore_X_Window win); | |
| re_X_Icon **icon, | | EAPI void | |
| int | | ecore_x_netwm_user_time_set(Ecore_X_Window win, | |
| *num); | | unsigned int time); | |
| EAPI void ecore_x_netwm_icon_geometry_set( | | EAPI Eina_Bool | |
| Ecore_X_Window win, | | ecore_x_netwm_user_time_get(Ecore_X_Window win, | |
| int x, | | unsigned int *time); | |
| int y, | | EAPI void | |
| int width, | | ecore_x_netwm_window_state_set(Ecore_X_Window win, | |
| int height); | | Ecore_X_Window_State *state, | |
| EAPI void ecore_x_netwm_icon_geometry_get_p | | unsigned int num); | |
| refetch( | | EAPI Eina_Bool | |
| Ecore_X_Window window); | | ecore_x_netwm_window_state_get(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_icon_geometry_get_f | | Ecore_X_Window_State **state, | |
| etch(void); | | unsigned int *num); | |
| EAPI Eina_Bool ecore_x_netwm_icon_geometry_get( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_netwm_window_type_set(Ecore_X_Window win, | |
| int *x, | | Ecore_X_Window_Type type); | |
| int *y, | | EAPI Eina_Bool | |
| int *width, | | ecore_x_netwm_window_type_get(Ecore_X_Window win, | |
| int *height); | | Ecore_X_Window_Type *type); | |
| EAPI void ecore_x_netwm_pid_set(Ecore_X_Win | | EAPI int | |
| dow win, | | ecore_x_netwm_window_types_get(Ecore_X_Window win, | |
| int | | Ecore_X_Window_Type **types); | |
| pid); | | EAPI Eina_Bool | |
| EAPI void ecore_x_netwm_pid_get_prefetch( | | ecore_x_netwm_allowed_action_isset(Ecore_X_Window win, | |
| Ecore_X_Window window); | | Ecore_X_Action action); | |
| EAPI void ecore_x_netwm_pid_get_fetch(void) | | EAPI void | |
| ; | | ecore_x_netwm_allowed_action_set(Ecore_X_Window win, | |
| EAPI Eina_Bool ecore_x_netwm_pid_get(Ecore_X_Win | | Ecore_X_Action *action, | |
| dow win, | | unsigned int num); | |
| int | | EAPI Eina_Bool | |
| *pid); | | ecore_x_netwm_allowed_action_get(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_handled_icons_set( | | Ecore_X_Action **action, | |
| Ecore_X_Window win); | | unsigned int *num); | |
| EAPI void ecore_x_netwm_handled_icons_get_p | | EAPI void | |
| refetch( | | ecore_x_netwm_opacity_set(Ecore_X_Window win, | |
| Ecore_X_Window window); | | unsigned int opacity); | |
| EAPI void ecore_x_netwm_handled_icons_get_f | | EAPI Eina_Bool | |
| etch(void); | | ecore_x_netwm_opacity_get(Ecore_X_Window win, | |
| EAPI Eina_Bool ecore_x_netwm_handled_icons_get( | | unsigned int *opacity); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_netwm_user_time_set( | | ecore_x_netwm_frame_size_set(Ecore_X_Window win, | |
| Ecore_X_Window win, | | int fl, | |
| unsigned int time); | | int fr, | |
| EAPI void ecore_x_netwm_user_time_get_prefe | | int ft, | |
| tch( | | int fb); | |
| Ecore_X_Window window); | | EAPI Eina_Bool | |
| EAPI void ecore_x_netwm_user_time_get_fetch | | ecore_x_netwm_frame_size_get(Ecore_X_Window win, | |
| (void); | | int *fl, | |
| EAPI Eina_Bool ecore_x_netwm_user_time_get( | | int *fr, | |
| Ecore_X_Window win, | | int *ft, | |
| unsigned int *time); | | int *fb); | |
| EAPI void ecore_x_netwm_window_state_set( | | EAPI Eina_Bool | |
| Ecore_X_Window win, | | ecore_x_netwm_sync_counter_get(Ecore_X_Window win, | |
| Ecore_X_Window_State *state, | | Ecore_X_Sync_Counter *counter); | |
| unsigned int num); | | EAPI void | |
| EAPI void ecore_x_netwm_window_state_get_pr | | ecore_x_netwm_ping_send(Ecore_X_Window win); | |
| efetch( | | EAPI void | |
| Ecore_X_Window window); | | ecore_x_netwm_sync_request_send(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_window_state_get_fe | | unsigned int serial); | |
| tch(void); | | EAPI void | |
| EAPI Eina_Bool ecore_x_netwm_window_state_get( | | ecore_x_netwm_state_request_send(Ecore_X_Window win, | |
| Ecore_X_Window win, | | Ecore_X_Window root, | |
| Ecore_X_Window_State **state, | | Ecore_X_Window_State s1, | |
| unsigned int *num); | | Ecore_X_Window_State s2, | |
| EAPI void ecore_x_netwm_window_type_set( | | Eina_Bool set); | |
| Ecore_X_Window win, | | EAPI void | |
| Ecore_X_Window_Type type); | | ecore_x_netwm_desktop_request_send(Ecore_X_Window win, | |
| EAPI void ecore_x_netwm_window_type_get_pre | | Ecore_X_Window root, | |
| fetch( | | unsigned int desktop); | |
| Ecore_X_Window window); | | | |
| EAPI void ecore_x_netwm_window_type_get_fet | | EAPI void | |
| ch(void); | | ecore_x_e_init(void); | |
| EAPI Eina_Bool ecore_x_netwm_window_type_get( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_e_frame_size_set(Ecore_X_Window win, | |
| Ecore_X_Window_Type *type); | | int fl, | |
| EAPI int ecore_x_netwm_window_types_get( | | int fr, | |
| Ecore_X_Window win, | | int ft, | |
| Ecore_X_Window_Type **types); | | int fb); | |
| EAPI Eina_Bool ecore_x_netwm_allowed_action_isse | | EAPI void | |
| t( | | ecore_x_e_virtual_keyboard_set(Ecore_X_Window win, | |
| Ecore_X_Window win, | | unsigned int is_keyboard); | |
| Ecore_X_Action action); | | EAPI Eina_Bool | |
| EAPI void ecore_x_netwm_allowed_action_set( | | ecore_x_e_virtual_keyboard_get(Ecore_X_Window win); | |
| Ecore_X_Window win, | | EAPI void | |
| Ecore_X_Action *action, | | ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win, | |
| unsigned int num); | | Ecore_X_Virtual_Keyboard_State state); | |
| EAPI void ecore_x_netwm_allowed_action_get_ | | EAPI Ecore_X_Virtual_Keyboard_State | |
| prefetch( | | ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win); | |
| Ecore_X_Window window); | | EAPI void | |
| EAPI void ecore_x_netwm_allowed_action_get_ | | ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win, | |
| fetch( | | Ecore_X_Virtual_Keyboard_State state) | |
| void); | | ; | |
| EAPI Eina_Bool ecore_x_netwm_allowed_action_get( | | | |
| Ecore_X_Window win, | | | |
| Ecore_X_Action **action, | | | |
| unsigned int *num); | | | |
| EAPI void ecore_x_netwm_opacity_set( | | | |
| Ecore_X_Window win, | | | |
| unsigned int opacity); | | | |
| EAPI void ecore_x_netwm_opacity_get_prefetc | | | |
| h( | | | |
| Ecore_X_Window window); | | | |
| EAPI void ecore_x_netwm_opacity_get_fetch(v | | | |
| oid); | | | |
| EAPI Eina_Bool ecore_x_netwm_opacity_get( | | | |
| Ecore_X_Window win, | | | |
| unsigned int *opacity); | | | |
| EAPI void ecore_x_netwm_frame_size_set( | | | |
| Ecore_X_Window win, | | | |
| int fl, | | | |
| int fr, | | | |
| int ft, | | | |
| int fb); | | | |
| EAPI void ecore_x_netwm_frame_size_get_pref | | | |
| etch( | | | |
| Ecore_X_Window window); | | | |
| EAPI void ecore_x_netwm_frame_size_get_fetc | | | |
| h(void); | | | |
| EAPI Eina_Bool ecore_x_netwm_frame_size_get( | | | |
| Ecore_X_Window win, | | | |
| int *fl, | | | |
| int *fr, | | | |
| int *ft, | | | |
| int *fb); | | | |
| EAPI void ecore_x_netwm_sync_counter_get_pr | | | |
| efetch( | | | |
| Ecore_X_Window window); | | | |
| EAPI void ecore_x_netwm_sync_counter_get_fe | | | |
| tch(void); | | | |
| EAPI Eina_Bool ecore_x_netwm_sync_counter_get( | | | |
| Ecore_X_Window win, | | | |
| Ecore_X_Sync_Counter *counter); | | | |
| EAPI void ecore_x_netwm_ping_send(Ecore_X_W | | | |
| indow win); | | | |
| EAPI void ecore_x_netwm_sync_request_send( | | | |
| Ecore_X_Window win, | | | |
| unsigned int serial); | | | |
| EAPI void ecore_x_netwm_state_request_send( | | | |
| Ecore_X_Window win, | | | |
| Ecore_X_Window root, | | | |
| Ecore_X_Window_State s1, | | | |
| Ecore_X_Window_State s2, | | | |
| Eina_Bool set); | | | |
| EAPI void ecore_x_netwm_desktop_request_sen | | | |
| d( | | | |
| Ecore_X_Window win, | | | |
| Ecore_X_Window root, | | | |
| unsigned int desktop); | | | |
| | | | |
| EAPI void ecore_x_e_init(void); | | | |
| EAPI void ecore_x_e_frame_size_set( | | | |
| Ecore_X_Window win, | | | |
| int fl, | | | |
| int fr, | | | |
| int ft, | | | |
| int fb); | | | |
| EAPI void ecore_x_e_virtual_keyboard_set( | | | |
| Ecore_X_Window win, | | | |
| unsigned int is_keyboard); | | | |
| EAPI Eina_Bool ecore_x_e_virtual_keyboard_get( | | | |
| Ecore_X_Window win); | | | |
| EAPI void ecore_x_e_virtual_keyboard_state_ | | | |
| set( | | | |
| Ecore_X_Window win, | | | |
| Ecore_X_Virtual_Keyboard_State state); | | | |
| EAPI Ecore_X_Virtual_Keyboard_State ecore_x_e_virtual_keyboard_state_ | | | |
| get( | | | |
| Ecore_X_Window win); | | | |
| EAPI void ecore_x_e_virtual_keyboard_state_ | | | |
| send( | | | |
| Ecore_X_Window win, | | | |
| Ecore_X_Virtual_Keyboard_State state); | | | |
| | | | |
| /* Illume functions */ | | /* Illume functions */ | |
|
| EAPI void ecore_x_e_illume_zone_set( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_e_illume_zone_set(Ecore_X_Window win, | |
| Ecore_X_Window zone); | | Ecore_X_Window zone); | |
| EAPI Ecore_X_Window ecore_x_e_illume_zone_get( | | EAPI Ecore_X_Window | |
| Ecore_X_Window win); | | ecore_x_e_illume_zone_get(Ecore_X_Window win); | |
| EAPI void ecore_x_e_illume_zone_list_set( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_e_illume_zone_list_set(Ecore_X_Window win, | |
| Ecore_X_Window *zones, | | Ecore_X_Window *zones, | |
| unsigned int n_zones); | | unsigned int n_zones); | |
| EAPI void ecore_x_e_illume_conformant_set( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_e_illume_conformant_set(Ecore_X_Window win, | |
| unsigned int is_conformant); | | unsigned int is_conformant); | |
| EAPI Eina_Bool ecore_x_e_illume_conformant_get( | | EAPI Eina_Bool | |
| Ecore_X_Window win); | | ecore_x_e_illume_conformant_get(Ecore_X_Window win); | |
| EAPI void ecore_x_e_illume_mode_set( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_e_illume_mode_set(Ecore_X_Window win, | |
| Ecore_X_Illume_Mode mode); | | Ecore_X_Illume_Mode mode); | |
| EAPI Ecore_X_Illume_Mode ecore_x_e_illume_mode_get( | | EAPI Ecore_X_Illume_Mode | |
| Ecore_X_Window win); | | ecore_x_e_illume_mode_get(Ecore_X_Window win); | |
| EAPI void ecore_x_e_illume_mode_send( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_e_illume_mode_send(Ecore_X_Window win, | |
| Ecore_X_Illume_Mode mode); | | Ecore_X_Illume_Mode mode); | |
| EAPI void ecore_x_e_illume_focus_back_send( | | EAPI void | |
| Ecore_X_Window win); | | ecore_x_e_illume_focus_back_send(Ecore_X_Window win); | |
| EAPI void ecore_x_e_illume_focus_forward_se | | EAPI void | |
| nd( | | ecore_x_e_illume_focus_forward_send(Ecore_X_Window win); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_e_illume_focus_home_send( | | ecore_x_e_illume_focus_home_send(Ecore_X_Window win); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_e_illume_close_send( | | ecore_x_e_illume_close_send(Ecore_X_Window win); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_e_illume_home_new_send( | | ecore_x_e_illume_home_new_send(Ecore_X_Window win); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_e_illume_home_del_send( | | ecore_x_e_illume_home_del_send(Ecore_X_Window win); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_e_illume_drag_set( | | ecore_x_e_illume_drag_set(Ecore_X_Window win, | |
| Ecore_X_Window win, | | unsigned int drag); | |
| unsigned int drag); | | EAPI Eina_Bool | |
| EAPI Eina_Bool ecore_x_e_illume_drag_get( | | ecore_x_e_illume_drag_get(Ecore_X_Window win); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_e_illume_drag_locked_set( | | ecore_x_e_illume_drag_locked_set(Ecore_X_Window win, | |
| Ecore_X_Window win, | | unsigned int is_locked); | |
| unsigned int is_locked); | | EAPI Eina_Bool | |
| EAPI Eina_Bool ecore_x_e_illume_drag_locked_get( | | ecore_x_e_illume_drag_locked_get(Ecore_X_Window win); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_e_illume_drag_start_send( | | ecore_x_e_illume_drag_start_send(Ecore_X_Window win); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_e_illume_drag_end_send( | | ecore_x_e_illume_drag_end_send(Ecore_X_Window win); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_e_illume_indicator_geomet | | ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win, | |
| ry_set( | | int x, | |
| Ecore_X_Window win, | | int y, | |
| int x, | | int w, | |
| int y, | | int h); | |
| int w, | | EAPI Eina_Bool | |
| int h); | | ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win, | |
| EAPI Eina_Bool ecore_x_e_illume_indicator_geomet | | int *x, | |
| ry_get( | | int *y, | |
| Ecore_X_Window win, | | int *w, | |
| int *x, | | int *h); | |
| int *y, | | EAPI void | |
| int *w, | | ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win, | |
| int *h); | | int x, | |
| EAPI void ecore_x_e_illume_softkey_geometry | | int y, | |
| _set( | | int w, | |
| Ecore_X_Window win, | | int h); | |
| int x, | | EAPI Eina_Bool | |
| int y, | | ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win, | |
| int w, | | int *x, | |
| int h); | | int *y, | |
| EAPI Eina_Bool ecore_x_e_illume_softkey_geometry | | int *w, | |
| _get( | | int *h); | |
| Ecore_X_Window win, | | EAPI void | |
| int *x, | | ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win, | |
| int *y, | | int x, | |
| int *w, | | int y, | |
| int *h); | | int w, | |
| EAPI void ecore_x_e_illume_keyboard_geometr | | int h); | |
| y_set( | | EAPI Eina_Bool | |
| Ecore_X_Window win, | | ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win, | |
| int x, | | int *x, | |
| int y, | | int *y, | |
| int w, | | int *w, | |
| int h); | | int *h); | |
| EAPI Eina_Bool ecore_x_e_illume_keyboard_geometr | | EAPI void | |
| y_get( | | ecore_x_e_illume_quickpanel_set(Ecore_X_Window win, | |
| Ecore_X_Window win, | | unsigned int is_quickpanel); | |
| int *x, | | EAPI Eina_Bool | |
| int *y, | | ecore_x_e_illume_quickpanel_get(Ecore_X_Window win); | |
| int *w, | | EAPI void | |
| int *h); | | ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win, | |
| EAPI void ecore_x_e_illume_quickpanel_set( | | Ecore_X_Illume_Quickpanel_State state | |
| Ecore_X_Window win, | | ); | |
| unsigned int is_quickpanel); | | EAPI Ecore_X_Illume_Quickpanel_State | |
| EAPI Eina_Bool ecore_x_e_illume_quickpanel_get( | | ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_e_illume_quickpanel_state | | ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win, | |
| _set( | | Ecore_X_Illume_Quickpanel_State stat | |
| Ecore_X_Window win, | | e); | |
| Ecore_X_Illume_Quickpanel_State state); | | EAPI void | |
| EAPI Ecore_X_Illume_Quickpanel_State ecore_x_e_illume_quickpanel_state | | ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win); | |
| _get( | | EAPI void | |
| Ecore_X_Window win); | | ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win, | |
| EAPI void ecore_x_e_illume_quickpanel_state | | unsigned int priority); | |
| _send( | | EAPI int | |
| Ecore_X_Window win, | | ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win); | |
| Ecore_X_Illume_Quickpanel_State state); | | EAPI void | |
| EAPI void ecore_x_e_illume_quickpanel_state | | ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win, | |
| _toggle( | | unsigned int priority); | |
| Ecore_X_Window win); | | EAPI int | |
| EAPI void ecore_x_e_illume_quickpanel_prior | | ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win); | |
| ity_major_set( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win, | |
| unsigned int priority); | | unsigned int zone); | |
| EAPI int ecore_x_e_illume_quickpanel_prior | | EAPI int | |
| ity_major_get( | | ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_e_illume_quickpanel_prior | | ecore_x_e_illume_quickpanel_zone_request_send(Ecore_X_Window win); | |
| ity_minor_set( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win); | |
| unsigned int priority); | | | |
| EAPI int ecore_x_e_illume_quickpanel_prior | | EAPI void | |
| ity_minor_get( | | ecore_x_e_comp_sync_counter_set(Ecore_X_Window win, | |
| Ecore_X_Window win); | | Ecore_X_Sync_Counter counter); | |
| EAPI void ecore_x_e_illume_quickpanel_zone_ | | EAPI Ecore_X_Sync_Counter | |
| set( | | ecore_x_e_comp_sync_counter_get(Ecore_X_Window win); | |
| Ecore_X_Window win, | | EAPI void | |
| unsigned int zone); | | ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root, | |
| EAPI int ecore_x_e_illume_quickpanel_zone_ | | Ecore_X_Window win); | |
| get( | | EAPI void | |
| Ecore_X_Window win); | | ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root, | |
| EAPI void | | Ecore_X_Window win, | |
| ecore_x_e_illume_quickpanel_zone_ | | int w, | |
| request_send( | | int h); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void | | ecore_x_e_comp_sync_supported_set(Ecore_X_Window root, | |
| ecore_x_e_illume_quickpanel_posit | | Eina_Bool enabled); | |
| ion_update_send( | | EAPI Eina_Bool | |
| Ecore_X_Window win); | | ecore_x_e_comp_sync_supported_get(Ecore_X_Window root); | |
| | | EAPI void | |
| EAPI void ecore_x_e_comp_sync_counter_set( | | ecore_x_e_comp_sync_begin_send(Ecore_X_Window win); | |
| Ecore_X_Window win, | | EAPI void | |
| Ecore_X_Sync_Counter counter); | | ecore_x_e_comp_sync_end_send(Ecore_X_Window win); | |
| EAPI Ecore_X_Sync_Counter ecore_x_e_comp_sync_counter_get( | | EAPI void | |
| Ecore_X_Window win); | | ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win); | |
| EAPI void ecore_x_e_comp_sync_draw_done_sen | | | |
| d( | | EAPI void | |
| Ecore_X_Window root, | | ecore_x_e_comp_flush_send(Ecore_X_Window win); | |
| Ecore_X_Window win); | | EAPI void | |
| EAPI void ecore_x_e_comp_sync_supported_set | | ecore_x_e_comp_dump_send(Ecore_X_Window win); | |
| ( | | EAPI void | |
| Ecore_X_Window root, | | ecore_x_e_comp_pixmap_set(Ecore_X_Window win, | |
| Eina_Bool enabled); | | Ecore_X_Pixmap pixmap); | |
| EAPI Eina_Bool ecore_x_e_comp_sync_supported_get | | EAPI Ecore_X_Pixmap | |
| ( | | ecore_x_e_comp_pixmap_get(Ecore_X_Window win); | |
| Ecore_X_Window root); | | | |
| EAPI void ecore_x_e_comp_sync_begin_send( | | EAPI Ecore_X_Sync_Alarm | |
| Ecore_X_Window win); | | ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter); | |
| EAPI void ecore_x_e_comp_sync_end_send( | | EAPI Eina_Bool | |
| Ecore_X_Window win); | | ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm); | |
| EAPI void ecore_x_e_comp_sync_cancel_send( | | EAPI Eina_Bool | |
| Ecore_X_Window win); | | ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter, | |
| | | unsigned int *val); | |
| EAPI void ecore_x_e_comp_flush_send( | | EAPI Ecore_X_Sync_Counter | |
| Ecore_X_Window win); | | ecore_x_sync_counter_new(int val); | |
| EAPI void ecore_x_e_comp_dump_send( | | EAPI void | |
| Ecore_X_Window win); | | ecore_x_sync_counter_free(Ecore_X_Sync_Counter counter); | |
| EAPI void ecore_x_e_comp_pixmap_set( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_sync_counter_inc(Ecore_X_Sync_Counter counter, | |
| Ecore_X_Pixmap pixmap); | | int by); | |
| EAPI Ecore_X_Pixmap ecore_x_e_comp_pixmap_get( | | EAPI void | |
| Ecore_X_Window win); | | ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter, | |
| | | int val); | |
| EAPI Ecore_X_Sync_Alarm ecore_x_sync_alarm_new( | | | |
| Ecore_X_Sync_Counter counter); | | EAPI void | |
| EAPI Eina_Bool ecore_x_sync_alarm_free( | | ecore_x_sync_counter_set(Ecore_X_Sync_Counter counter, | |
| Ecore_X_Sync_Alarm alarm); | | int val); | |
| EAPI Eina_Bool ecore_x_sync_counter_query( | | EAPI void | |
| Ecore_X_Sync_Counter counter, | | ecore_x_sync_counter_2_set(Ecore_X_Sync_Counter counter, | |
| unsigned int *val); | | int val_hi, | |
| EAPI Ecore_X_Sync_Counter ecore_x_sync_counter_new(int val) | | unsigned int val_lo); | |
| ; | | EAPI Eina_Bool | |
| EAPI void ecore_x_sync_counter_free( | | ecore_x_sync_counter_2_query(Ecore_X_Sync_Counter counter, | |
| Ecore_X_Sync_Counter counter); | | int *val_hi, | |
| EAPI void ecore_x_sync_counter_inc( | | unsigned int *val_lo); | |
| Ecore_X_Sync_Counter counter, | | | |
| int by); | | EAPI int | |
| EAPI void ecore_x_sync_counter_val_wait( | | ecore_x_xinerama_screen_count_get(void); | |
| Ecore_X_Sync_Counter counter, | | EAPI Eina_Bool | |
| int val); | | ecore_x_xinerama_screen_geometry_get(int screen, | |
| | | int *x, | |
| EAPI void ecore_x_xinerama_query_screens_pr | | int *y, | |
| efetch( | | int *w, | |
| void); | | int *h); | |
| EAPI void ecore_x_xinerama_query_screens_fe | | | |
| tch(void); | | EAPI Eina_Bool | |
| EAPI int ecore_x_xinerama_screen_count_get | | ecore_x_screensaver_event_available_get(void); | |
| (void); | | EAPI int | |
| EAPI Eina_Bool ecore_x_xinerama_screen_geometry_ | | ecore_x_screensaver_idle_time_get(void); | |
| get( | | EAPI void | |
| int screen, | | ecore_x_screensaver_set(int timeout, | |
| int *x, | | int interval, | |
| int *y, | | int prefer_blanking, | |
| int *w, | | int allow_exposures); | |
| int *h); | | EAPI void | |
| | | ecore_x_screensaver_timeout_set(int timeout); | |
| EAPI Eina_Bool ecore_x_screensaver_event_available_get( | | EAPI int | |
| void); | | ecore_x_screensaver_timeout_get(void); | |
| EAPI void ecore_x_screensaver_idle_time_prefetch( | | EAPI void | |
| void); | | ecore_x_screensaver_blank_set(int timeout); | |
| EAPI void ecore_x_screensaver_idle_time_fetch(void); | | EAPI int | |
| EAPI int ecore_x_screensaver_idle_time_get(void); | | ecore_x_screensaver_blank_get(void); | |
| EAPI void ecore_x_get_screensaver_prefetch(void); | | EAPI void | |
| EAPI void ecore_x_get_screensaver_fetch(void); | | ecore_x_screensaver_expose_set(int timeout); | |
| EAPI void ecore_x_screensaver_set(int timeout, | | EAPI int | |
| int interval, | | ecore_x_screensaver_expose_get(void); | |
| int prefer_blanking, | | EAPI void | |
| int allow_exposures); | | ecore_x_screensaver_interval_set(int timeout); | |
| EAPI void ecore_x_screensaver_timeout_set( | | EAPI int | |
| int timeout); | | ecore_x_screensaver_interval_get(void); | |
| EAPI int ecore_x_screensaver_timeout_get(void); | | EAPI void | |
| EAPI void ecore_x_screensaver_blank_set(int timeout); | | ecore_x_screensaver_event_listen_set(Eina_Bool on); | |
| EAPI int ecore_x_screensaver_blank_get(void); | | | |
| EAPI void ecore_x_screensaver_expose_set(int timeout); | | | |
| EAPI int ecore_x_screensaver_expose_get(void); | | | |
| EAPI void ecore_x_screensaver_interval_set( | | | |
| int timeout); | | | |
| EAPI int ecore_x_screensaver_interval_get(void); | | | |
| EAPI void ecore_x_screensaver_event_listen_set( | | | |
| Eina_Bool on); | | | |
| | | | |
| /* FIXME: these funcs need categorising */ | | /* FIXME: these funcs need categorising */ | |
| | | | |
| typedef struct _Ecore_X_Window_Attributes | | typedef struct _Ecore_X_Window_Attributes | |
| { | | { | |
|
| Ecore_X_Window root; | | Ecore_X_Window root; | |
| int x, y, w, h; | | int x, y, w, h; | |
| int border; | | int border; | |
| int depth; | | int depth; | |
| unsigned char visible : 1; | | Eina_Bool visible : 1; | |
| unsigned char viewable : 1; | | Eina_Bool viewable : 1; | |
| unsigned char override : 1; | | Eina_Bool override : 1; | |
| unsigned char input_only : 1; | | Eina_Bool input_only : 1; | |
| unsigned char save_under : 1; | | Eina_Bool save_under : 1; | |
| struct | | struct | |
| { | | { | |
| Ecore_X_Event_Mask mine; | | Ecore_X_Event_Mask mine; | |
| Ecore_X_Event_Mask all; | | Ecore_X_Event_Mask all; | |
| Ecore_X_Event_Mask no_propagate; | | Ecore_X_Event_Mask no_propagate; | |
| } event_mask; | | } event_mask; | |
| Ecore_X_Gravity window_gravity; | | Ecore_X_Gravity window_gravity; | |
| Ecore_X_Gravity pixel_gravity; | | Ecore_X_Gravity pixel_gravity; | |
| Ecore_X_Colormap colormap; | | Ecore_X_Colormap colormap; | |
| Ecore_X_Visual visual; | | Ecore_X_Visual visual; | |
| /* FIXME: missing | | /* FIXME: missing | |
| * int map_installed; | | * int map_installed; | |
| * Screen *screen; | | * Screen *screen; | |
| */ | | */ | |
| } Ecore_X_Window_Attributes; | | } Ecore_X_Window_Attributes; | |
| | | | |
|
| EAPI void ecore_x_get_window_attributes_prefetch( | | EAPI Eina_Bool | |
| Ecore_X_Window window); | | ecore_x_window_attributes_get(Ecore_X_Window win, | |
| EAPI void ecore_x_get_window_attributes_fetch(void); | | Ecore_X_Window_Attributes *att_ret); | |
| EAPI Eina_Bool ecore_x_window_attributes_get( | | EAPI void | |
| Ecore_X_Window win, | | ecore_x_window_save_set_add(Ecore_X_Window win); | |
| Ecore_X_Window_Attributes * | | EAPI void | |
| att_ret); | | ecore_x_window_save_set_del(Ecore_X_Window win); | |
| EAPI void ecore_x_window_save_set_add(Ecore_X_Window win); | | EAPI Ecore_X_Window * | |
| EAPI void ecore_x_window_save_set_del(Ecore_X_Window win); | | ecore_x_window_children_get(Ecore_X_Window win, | |
| EAPI Ecore_X_Window * ecore_x_window_children_get(Ecore_X_Window win, i | | int *num); | |
| nt *num); | | | |
| | | EAPI Eina_Bool | |
| EAPI Eina_Bool ecore_x_pointer_control_set(int accel_num, | | ecore_x_pointer_control_set(int accel_num, | |
| int accel_denom, | | int accel_denom, | |
| int threshold); | | int threshold); | |
| EAPI void ecore_x_pointer_control_get_prefetch(void); | | EAPI Eina_Bool | |
| EAPI void ecore_x_pointer_control_get_fetch(void); | | ecore_x_pointer_control_get(int *accel_num, | |
| EAPI Eina_Bool ecore_x_pointer_control_get(int *accel_num, | | int *accel_denom, | |
| int *accel_denom, | | int *threshold); | |
| int *threshold); | | EAPI Eina_Bool | |
| EAPI Eina_Bool ecore_x_pointer_mapping_set(unsigned char *map, i | | ecore_x_pointer_mapping_set(unsigned char *map, | |
| nt nmap); | | int nmap); | |
| EAPI void ecore_x_pointer_mapping_get_prefetch(void); | | EAPI Eina_Bool | |
| EAPI void ecore_x_pointer_mapping_get_fetch(void); | | ecore_x_pointer_mapping_get(unsigned char *map, | |
| EAPI Eina_Bool ecore_x_pointer_mapping_get(unsigned char *map, i | | int nmap); | |
| nt nmap); | | EAPI Eina_Bool | |
| EAPI Eina_Bool ecore_x_pointer_grab(Ecore_X_Window win); | | ecore_x_pointer_grab(Ecore_X_Window win); | |
| EAPI Eina_Bool ecore_x_pointer_confine_grab(Ecore_X_Window win); | | EAPI Eina_Bool | |
| EAPI void ecore_x_pointer_ungrab(void); | | ecore_x_pointer_confine_grab(Ecore_X_Window win); | |
| EAPI Eina_Bool ecore_x_pointer_warp(Ecore_X_Window win, int x, i | | EAPI void | |
| nt y); | | ecore_x_pointer_ungrab(void); | |
| EAPI Eina_Bool ecore_x_keyboard_grab(Ecore_X_Window win); | | EAPI Eina_Bool | |
| EAPI void ecore_x_keyboard_ungrab(void); | | ecore_x_pointer_warp(Ecore_X_Window win, | |
| EAPI void ecore_x_grab(void); | | int x, | |
| EAPI void ecore_x_ungrab(void); | | int y); | |
| EAPI void ecore_x_passive_grab_replay_func_set(Eina_Bool | | EAPI Eina_Bool | |
| (*func)(void *data, | | ecore_x_keyboard_grab(Ecore_X_Window win); | |
| | | EAPI void | |
| int event_type, | | ecore_x_keyboard_ungrab(void); | |
| | | EAPI void | |
| void *event), | | ecore_x_grab(void); | |
| void | | EAPI void | |
| *data); | | ecore_x_ungrab(void); | |
| EAPI void ecore_x_window_button_grab(Ecore_X_Window win, in | | EAPI void | |
| t button, | | ecore_x_passive_grab_replay_func_set(Eina_Bool (*func)(void *data, | |
| Ecore_X_Event_Mask eve | | int event_type, | |
| nt_mask, | | void *event), | |
| int mod, int any_mod); | | void *data); | |
| EAPI void ecore_x_window_button_ungrab(Ecore_X_Window win, | | EAPI void | |
| int butto | | ecore_x_window_button_grab(Ecore_X_Window win, | |
| n, | | int button, | |
| int mod, | | Ecore_X_Event_Mask event_mask, | |
| int any_m | | int mod, | |
| od); | | int any_mod); | |
| EAPI void ecore_x_window_key_grab(Ecore_X_Window win, | | EAPI void | |
| const char *key, | | ecore_x_window_button_ungrab(Ecore_X_Window win, | |
| int mod, | | int button, | |
| int any_mod); | | int mod, | |
| EAPI void ecore_x_window_key_ungrab(Ecore_X_Window win, | | int any_mod); | |
| const char *key, | | EAPI void | |
| int mod, | | ecore_x_window_key_grab(Ecore_X_Window win, | |
| int any_mod) | | const char *key, | |
| ; | | int mod, | |
| | | int any_mod); | |
| EAPI void ecore_x_focus_reset(void); | | EAPI void | |
| EAPI void ecore_x_events_allow_all(void); | | ecore_x_window_key_ungrab(Ecore_X_Window win, | |
| EAPI void ecore_x_pointer_last_xy_get(int *x, int *y); | | const char *key, | |
| EAPI void ecore_x_pointer_xy_get_prefetch(Ecore_X_Window wi | | int mod, | |
| ndow); | | int any_mod); | |
| EAPI void ecore_x_pointer_xy_get_fetch(void); | | | |
| EAPI void ecore_x_pointer_xy_get(Ecore_X_Window win, int *x | | EAPI void | |
| , int *y); | | ecore_x_focus_reset(void); | |
| | | EAPI void | |
| | | ecore_x_events_allow_all(void); | |
| | | EAPI void | |
| | | ecore_x_pointer_last_xy_get(int *x, | |
| | | int *y); | |
| | | EAPI void | |
| | | ecore_x_pointer_xy_get(Ecore_X_Window win, | |
| | | int *x, | |
| | | int *y); | |
| | | | |
| /* ecore_x_region.c */ | | /* ecore_x_region.c */ | |
|
| EAPI Ecore_X_XRegion * ecore_x_xregion_new(void); | | EAPI Ecore_X_XRegion * | |
| EAPI void ecore_x_xregion_free(Ecore_X_XRegion *region); | | ecore_x_xregion_new(void); | |
| EAPI Eina_Bool ecore_x_xregion_set(Ecore_X_XRegion *region, | | EAPI void | |
| Ecore_X_GC gc); | | ecore_x_xregion_free(Ecore_X_XRegion *region); | |
| EAPI void ecore_x_xregion_translate(Ecore_X_XRegion *region | | EAPI Eina_Bool | |
| , | | ecore_x_xregion_set(Ecore_X_XRegion *region, | |
| int x, | | Ecore_X_GC gc); | |
| int y); | | EAPI void | |
| EAPI Eina_Bool ecore_x_xregion_intersect(Ecore_X_XRegion *dst, | | ecore_x_xregion_translate(Ecore_X_XRegion *region, | |
| Ecore_X_XRegion *r1, | | int x, | |
| Ecore_X_XRegion *r2); | | int y); | |
| EAPI Eina_Bool ecore_x_xregion_union(Ecore_X_XRegion *dst, | | EAPI Eina_Bool | |
| Ecore_X_XRegion *r1, | | ecore_x_xregion_intersect(Ecore_X_XRegion *dst, | |
| Ecore_X_XRegion *r2); | | Ecore_X_XRegion *r1, | |
| EAPI Eina_Bool ecore_x_xregion_union_rect(Ecore_X_XRegion *dst | | Ecore_X_XRegion *r2); | |
| , | | EAPI Eina_Bool | |
| Ecore_X_XRegion *src | | ecore_x_xregion_union(Ecore_X_XRegion *dst, | |
| , | | Ecore_X_XRegion *r1, | |
| Ecore_X_Rectangle *rec | | Ecore_X_XRegion *r2); | |
| t); | | EAPI Eina_Bool | |
| EAPI Eina_Bool ecore_x_xregion_subtract(Ecore_X_XRegion *dst, | | ecore_x_xregion_union_rect(Ecore_X_XRegion *dst, | |
| Ecore_X_XRegion *r1, | | Ecore_X_XRegion *src, | |
| Ecore_X_XRegion *r2); | | Ecore_X_Rectangle *rect); | |
| EAPI Eina_Bool ecore_x_xregion_is_empty(Ecore_X_XRegion *region) | | EAPI Eina_Bool | |
| ; | | ecore_x_xregion_subtract(Ecore_X_XRegion *dst, | |
| EAPI Eina_Bool ecore_x_xregion_is_equal(Ecore_X_XRegion *r1, | | Ecore_X_XRegion *r1, | |
| Ecore_X_XRegion *r2); | | Ecore_X_XRegion *r2); | |
| EAPI Eina_Bool ecore_x_xregion_point_contain(Ecore_X_XRegion *re | | EAPI Eina_Bool | |
| gion, | | ecore_x_xregion_is_empty(Ecore_X_XRegion *region); | |
| int x, | | EAPI Eina_Bool | |
| int y) | | ecore_x_xregion_is_equal(Ecore_X_XRegion *r1, | |
| ; | | Ecore_X_XRegion *r2); | |
| EAPI Eina_Bool ecore_x_xregion_rect_contain(Ecore_X_XRegion *r | | EAPI Eina_Bool | |
| egion, | | ecore_x_xregion_point_contain(Ecore_X_XRegion *region, | |
| Ecore_X_Rectangle *r | | int x, | |
| ect); | | int y); | |
| | | EAPI Eina_Bool | |
| | | ecore_x_xregion_rect_contain(Ecore_X_XRegion *region, | |
| | | Ecore_X_Rectangle *rect); | |
| | | | |
| /* ecore_x_randr.c */ | | /* ecore_x_randr.c */ | |
| | | | |
| /* The usage of 'Ecore_X_Randr_None' or 'Ecore_X_Randr_Unset' | | /* The usage of 'Ecore_X_Randr_None' or 'Ecore_X_Randr_Unset' | |
| * depends on the context. In most cases 'Ecore_X_Randr_Unset' | | * depends on the context. In most cases 'Ecore_X_Randr_Unset' | |
| * can be used, but in some cases -1 is a special value to | | * can be used, but in some cases -1 is a special value to | |
| * functions, thus 'Ecore_X_Randr_None' (=0) musst be used. | | * functions, thus 'Ecore_X_Randr_None' (=0) musst be used. | |
| */ | | */ | |
| | | | |
| typedef short Ecore_X_Randr_Refresh_Rate; | | typedef short Ecore_X_Randr_Refresh_Rate; | |
| typedef int Ecore_X_Randr_Crtc_Gamma; | | typedef int Ecore_X_Randr_Crtc_Gamma; | |
| typedef int Ecore_X_Randr_Signal_Format; | | typedef int Ecore_X_Randr_Signal_Format; | |
| typedef int Ecore_X_Randr_Signal_Property; | | typedef int Ecore_X_Randr_Signal_Property; | |
| typedef int Ecore_X_Randr_Connector_Type; | | typedef int Ecore_X_Randr_Connector_Type; | |
| | | | |
| typedef struct _Ecore_X_Randr_Mode_Info | | typedef struct _Ecore_X_Randr_Mode_Info | |
| { | | { | |
|
| Ecore_X_ID xid; | | Ecore_X_ID xid; | |
| unsigned int width; | | unsigned int width; | |
| unsigned int height; | | unsigned int height; | |
| unsigned long dotClock; | | unsigned long dotClock; | |
|
| unsigned int hSyncStart; | | unsigned int hSyncStart; | |
| unsigned int hSyncEnd; | | unsigned int hSyncEnd; | |
| unsigned int hTotal; | | unsigned int hTotal; | |
| unsigned int hSkew; | | unsigned int hSkew; | |
| unsigned int vSyncStart; | | unsigned int vSyncStart; | |
| unsigned int vSyncEnd; | | unsigned int vSyncEnd; | |
| unsigned int vTotal; | | unsigned int vTotal; | |
| char *name; | | char *name; | |
| unsigned int nameLength; | | unsigned int nameLength; | |
| unsigned long modeFlags; | | unsigned long modeFlags; | |
| } Ecore_X_Randr_Mode_Info; | | } Ecore_X_Randr_Mode_Info; | |
| | | | |
|
| EAPI int ecore_x_randr_version_get( | | EAPI int | |
| void); | | ecore_x_randr_version_get(void); | |
| EAPI Eina_Bool ecore_x_randr_query(void); | | EAPI Eina_Bool | |
| | | ecore_x_randr_query(void); | |
| | | | |
| /* ecore_x_randr_11.c */ | | /* ecore_x_randr_11.c */ | |
| EAPI Ecore_X_Randr_Orientation | | EAPI Ecore_X_Randr_Orientation | |
|
| ecore_x_randr_screen_primary_output_orientations_get( | | ecore_x_randr_screen_primary_output_orientations_get(Ecore_X_Window root); | |
| Ecore_X_Window root); | | | |
| EAPI Ecore_X_Randr_Orientation | | EAPI Ecore_X_Randr_Orientation | |
|
| ecore_x_randr_screen_primary_output_orientation_get( | | ecore_x_randr_screen_primary_output_orientation_get(Ecore_X_Window root); | |
| Ecore_X_Window root); | | | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
|
| ecore_x_randr_screen_primary_output_orientation_set( | | ecore_x_randr_screen_primary_output_orientation_set(Ecore_X_Window root, | |
| Ecore_X_Window root, | | Ecore_X_Randr_Orientati | |
| Ecore_X_Randr_Orientation | | on orientation); | |
| orientation); | | | |
| EAPI Ecore_X_Randr_Screen_Size_MM * | | EAPI Ecore_X_Randr_Screen_Size_MM * | |
|
| ecore_x_randr_screen_primary_output_sizes_get( | | ecore_x_randr_screen_primary_output_sizes_get(Ecore_X_Window root, | |
| Ecore_X_Window root, | | int *num); | |
| int *num); | | EAPI void | |
| EAPI void | | ecore_x_randr_screen_primary_output_current_size_get(Ecore_X_Window root, | |
| ecore_x_randr_screen_primary_output_current_size_get( | | int *w, | |
| Ecore_X_Window root, | | int *h, | |
| int *w, | | int *w_mm, | |
| int *h, | | int *h_mm, | |
| int *w_mm, | | int *size_index); | |
| int *h_mm, | | | |
| int *size_index); | | | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
| ecore_x_randr_screen_primary_output_size_set(Ecore_X_Window root, | | ecore_x_randr_screen_primary_output_size_set(Ecore_X_Window root, | |
| int size_index); | | int size_index); | |
| EAPI Ecore_X_Randr_Refresh_Rate | | EAPI Ecore_X_Randr_Refresh_Rate | |
|
| ecore_x_randr_screen_primary_output_current_refresh_rate_get( | | ecore_x_randr_screen_primary_output_current_refresh_rate_get(Ecore_X_Windo | |
| Ecore_X_Window root); | | w root); | |
| EAPI Ecore_X_Randr_Refresh_Rate * | | EAPI Ecore_X_Randr_Refresh_Rate * | |
|
| ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root, | | ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root, | |
| int size_index, | | int size_index, | |
| int *num); | | int *num); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
|
| ecore_x_randr_screen_primary_output_refresh_rate_set( | | ecore_x_randr_screen_primary_output_refresh_rate_set(Ecore_X_Window root, | |
| Ecore_X_Window root, | | int size_index, | |
| int size_index, | | Ecore_X_Randr_Refresh_ | |
| Ecore_X_Randr_Refresh_Rate | | Rate rate); | |
| rate); | | | |
| | | | |
| /* ecore_x_randr_12.c */ | | /* ecore_x_randr_12.c */ | |
| EAPI void | | EAPI void | |
| ecore_x_randr_events_select(Ecore_X_Window win, | | ecore_x_randr_events_select(Ecore_X_Window win, | |
| Eina_Bool on); | | Eina_Bool on); | |
| | | | |
| EAPI void | | EAPI void | |
| ecore_x_randr_screen_current_size_get(Ecore_X_Window root, | | ecore_x_randr_screen_current_size_get(Ecore_X_Window root, | |
| int *w, | | int *w, | |
| int *h, | | int *h, | |
| int *w_mm, | | int *w_mm, | |
| int *h_mm); | | int *h_mm); | |
| EAPI void | | EAPI void | |
|
| ecore_x_randr_screen_size_range_get(Ecore_X_Window root, | | ecore_x_randr_screen_size_range_get(Ecore_X_Window root, | |
| int *wmin, | | int *wmin, | |
| int *hmin, | | int *hmin, | |
| int *wmax, | | int *wmax, | |
| int *hmax); | | int *hmax); | |
|
| EAPI void ecore_x_randr_screen_reset( | | EAPI void | |
| Ecore_X_Window root); | | ecore_x_randr_screen_reset(Ecore_X_Window root); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
|
| ecore_x_randr_screen_current_size_set(Ecore_X_Window root, | | ecore_x_randr_screen_current_size_set(Ecore_X_Window root, | |
| int w, | | int w, | |
| int h, | | int h, | |
| int w_mm, | | int w_mm, | |
| int h_mm); | | int h_mm); | |
| EAPI Ecore_X_Randr_Mode_Info ** | | EAPI Ecore_X_Randr_Mode_Info ** | |
|
| ecore_x_randr_modes_info_get(Ecore_X_Window root
, | | ecore_x_randr_modes_info_get(Ecore_X_Window root, | |
| int *num); | | int *num); | |
| EAPI Ecore_X_Randr_Mode_Info * | | EAPI Ecore_X_Randr_Mode_Info * | |
|
| ecore_x_randr_mode_info_get(Ecore_X_Window root, | | ecore_x_randr_mode_info_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Mode mode); | | Ecore_X_Randr_Mode mode); | |
| EAPI void | | EAPI void | |
|
| ecore_x_randr_mode_info_free( | | ecore_x_randr_mode_info_free(Ecore_X_Randr_Mode_ | |
| Ecore_X_Randr_Mode_Info *mode_info); | | Info *mode_info); | |
| EAPI Ecore_X_Randr_Crtc * ecore_x_randr_crtcs_get( | | EAPI Ecore_X_Randr_Crtc * | |
| Ecore_X_Window root, | | ecore_x_randr_crtcs_get(Ecore_X_Window root, | |
| int *num); | | int *num); | |
| EAPI Ecore_X_Randr_Output *ecore_x_randr_outputs_get( | | EAPI Ecore_X_Randr_Output *ecore_x_randr_outputs_get(Ecore_X_Window root, | |
| Ecore_X_Window root, | | int *num); | |
| int *num); | | | |
| EAPI Ecore_X_Randr_Output * | | EAPI Ecore_X_Randr_Output * | |
|
| ecore_x_randr_current_output_get( | | ecore_x_randr_window_outputs_get(Ecore_X_Window window, | |
| Ecore_X_Window window, | | int *num); | |
| int *num); | | EINA_DEPRECATED EAPI Ecore_X_Randr_Output * | |
| | | ecore_x_randr_current_output_get(Ecore_X_Window window, | |
| | | int *num); | |
| EAPI Ecore_X_Randr_Crtc * | | EAPI Ecore_X_Randr_Crtc * | |
|
| ecore_x_randr_current_crtc_get(Ecore_X_Window wi
ndow, | | ecore_x_randr_current_crtc_get(Ecore_X_Window window, | |
| int *num); | | int *num); | |
| EAPI Ecore_X_Randr_Output * | | EAPI Ecore_X_Randr_Output * | |
|
| ecore_x_randr_crtc_outputs_get(Ecore_X_Window ro
ot, | | ecore_x_randr_crtc_outputs_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc crtc, | | Ecore_X_Randr_Crtc crtc, | |
| int *num); | | int *num); | |
| EAPI Ecore_X_Randr_Output * | | EAPI Ecore_X_Randr_Output * | |
|
| ecore_x_randr_crtc_possible_outputs_get( | | ecore_x_randr_crtc_possible_outputs_get(Ecore_X_Window root, | |
| Ecore_X_Window root, | | Ecore_X_Randr_Crtc crtc, | |
| Ecore_X_Randr_Crtc crtc, | | int *num); | |
| int *num); | | | |
| EAPI void | | EAPI void | |
|
| ecore_x_randr_crtc_geometry_get(Ecore_X_Window r
oot, | | ecore_x_randr_crtc_geometry_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc crtc, | | Ecore_X_Randr_Crtc crtc, | |
| int *x, | | int *x, | |
| int *y, | | int *y, | |
| int *w, | | int *w, | |
| int *h); | | int *h); | |
| EAPI void | | EAPI void | |
| ecore_x_randr_crtc_pos_get(Ecore_X_Window root, | | ecore_x_randr_crtc_pos_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc crtc, | | Ecore_X_Randr_Crtc crtc, | |
| int *x, | | int *x, | |
| int *y); | | int *y); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
| ecore_x_randr_crtc_pos_set(Ecore_X_Window root, | | ecore_x_randr_crtc_pos_set(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc crtc, | | Ecore_X_Randr_Crtc crtc, | |
| int x, | | int x, | |
| int y); | | int y); | |
| EAPI Ecore_X_Randr_Mode | | EAPI Ecore_X_Randr_Mode | |
|
| ecore_x_randr_crtc_mode_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc); | | ecore_x_randr_crtc_mode_get(Ecore_X_Window root, | |
| | | Ecore_X_Randr_Crtc crtc); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
| ecore_x_randr_crtc_mode_set(Ecore_X_Window root, | | ecore_x_randr_crtc_mode_set(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc crtc, | | Ecore_X_Randr_Crtc crtc, | |
| Ecore_X_Randr_Output *outputs, | | Ecore_X_Randr_Output *outputs, | |
| int noutputs, | | int noutputs, | |
| Ecore_X_Randr_Mode mode); | | Ecore_X_Randr_Mode mode); | |
| EAPI void | | EAPI void | |
| ecore_x_randr_crtc_size_get(Ecore_X_Window root, | | ecore_x_randr_crtc_size_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc crtc, | | Ecore_X_Randr_Crtc crtc, | |
| int *w, | | int *w, | |
| int *h); | | int *h); | |
| EAPI Ecore_X_Randr_Refresh_Rate | | EAPI Ecore_X_Randr_Refresh_Rate | |
| ecore_x_randr_crtc_refresh_rate_get(Ecore_X_Window root, | | ecore_x_randr_crtc_refresh_rate_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc crtc, | | Ecore_X_Randr_Crtc crtc, | |
| Ecore_X_Randr_Mode mode); | | Ecore_X_Randr_Mode mode); | |
| EAPI Ecore_X_Randr_Orientation | | EAPI Ecore_X_Randr_Orientation | |
| ecore_x_randr_crtc_orientations_get(Ecore_X_Window root, | | ecore_x_randr_crtc_orientations_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc crtc); | | Ecore_X_Randr_Crtc crtc); | |
| EAPI Ecore_X_Randr_Orientation | | EAPI Ecore_X_Randr_Orientation | |
|
| ecore_x_randr_crtc_orientation_get(Ecore_X_Window root, Ecore_X_Randr_Crtc | | ecore_x_randr_crtc_orientation_get(Ecore_X_Window root, | |
| crtc); | | Ecore_X_Randr_Crtc crtc); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
| ecore_x_randr_crtc_orientation_set(Ecore_X_Window root, | | ecore_x_randr_crtc_orientation_set(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc crtc, | | Ecore_X_Randr_Crtc crtc, | |
| const Ecore_X_Randr_Orientation orientat
ion); | | const Ecore_X_Randr_Orientation orientat
ion); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
| ecore_x_randr_crtc_clone_set(Ecore_X_Window root, | | ecore_x_randr_crtc_clone_set(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc original, | | Ecore_X_Randr_Crtc original, | |
| Ecore_X_Randr_Crtc clone); | | Ecore_X_Randr_Crtc clone); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
| ecore_x_randr_crtc_settings_set(Ecore_X_Window root, | | ecore_x_randr_crtc_settings_set(Ecore_X_Window root, | |
| | | | |
| skipping to change at line 2609 | | skipping to change at line 2842 | |
| int y, | | int y, | |
| Ecore_X_Randr_Mode mode, | | Ecore_X_Randr_Mode mode, | |
| Ecore_X_Randr_Orientation orientation); | | Ecore_X_Randr_Orientation orientation); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
| ecore_x_randr_crtc_pos_relative_set(Ecore_X_Window root, | | ecore_x_randr_crtc_pos_relative_set(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc crtc_r1, | | Ecore_X_Randr_Crtc crtc_r1, | |
| Ecore_X_Randr_Crtc crtc_r2, | | Ecore_X_Randr_Crtc crtc_r2, | |
| Ecore_X_Randr_Output_Policy policy, | | Ecore_X_Randr_Output_Policy policy, | |
| Ecore_X_Randr_Relative_Alignment alignm
ent); | | Ecore_X_Randr_Relative_Alignment alignm
ent); | |
| EAPI Ecore_X_Randr_Mode * | | EAPI Ecore_X_Randr_Mode * | |
|
| ecore_x_randr_output_modes_get(Ecore_X_Window root, | | ecore_x_randr_output_modes_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Output output, | | Ecore_X_Randr_Output output, | |
| int *num, | | int *num, | |
| int *npreferred); | | int *npreferred); | |
|
| EAPI Ecore_X_Randr_Output * ecore_x_randr_output_clones_get(Ecore_X_Window | | EAPI Ecore_X_Randr_Output *ecore_x_randr_output_clones_get(Ecore_X_Window r | |
| root, Ecore_X_Randr_Output output, int *num); | | oot, | |
| EAPI Ecore_X_Randr_Crtc * ecore_x_randr_output_possible_crtcs_get(Ecore_X_W | | Ecore_X_Randr_Ou | |
| indow root, Ecore_X_Randr_Output output, int *num); | | tput output, | |
| | | int *num); | |
| | | EAPI Ecore_X_Randr_Crtc *ecore_x_randr_output_possible_crtcs_get(Ecore_X_Wi | |
| | | ndow root, | |
| | | Ecore_X_Ra | |
| | | ndr_Output output, | |
| | | int *num); | |
| EAPI Ecore_X_Randr_Crtc | | EAPI Ecore_X_Randr_Crtc | |
|
| ecore_x_randr_output_crtc_get(Ecore_X_Window root, | | ecore_x_randr_output_crtc_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Output output); | | Ecore_X_Randr_Output output); | |
| EAPI char * | | EAPI char * | |
|
| ecore_x_randr_output_name_get(Ecore_X_Window root, | | ecore_x_randr_output_name_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Output output, | | Ecore_X_Randr_Output output, | |
| int *len); | | int *len); | |
| EAPI int | | EAPI int | |
|
| ecore_x_randr_crtc_gamma_ramp_size_get( | | ecore_x_randr_crtc_gamma_ramp_size_get(Ecore_X_Randr_Crtc crtc); | |
| Ecore_X_Randr_Crtc crtc); | | | |
| EAPI Ecore_X_Randr_Crtc_Gamma ** | | EAPI Ecore_X_Randr_Crtc_Gamma ** | |
|
| ecore_x_randr_crtc_gamma_ramps_get(Ecore_X_Randr_Crtc
crtc); | | ecore_x_randr_crtc_gamma_ramps_get(Ecore_X_Randr_Crtc crtc); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
|
| ecore_x_randr_crtc_gamma_ramps_set(Ecore_X_Randr_Crtc
crtc, | | ecore_x_randr_crtc_gamma_ramps_set(Ecore_X_Randr_Crtc crtc, | |
| const Ecore_X_Randr_Crtc_Gamma *red, | | const Ecore_X_Randr_Crtc_Gamma *red, | |
| const Ecore_X_Randr_Crtc_Gamma *green, | | const Ecore_X_Randr_Crtc_Gamma *green, | |
| const Ecore_X_Randr_Crtc_Gamma *blue); | | const Ecore_X_Randr_Crtc_Gamma *blue); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
|
| ecore_x_randr_move_all_crtcs_but(Ecore_X_Window root, | | ecore_x_randr_move_all_crtcs_but(Ecore_X_Window root, | |
| const Ecore_X_Randr_Crtc *not_moved, | | const Ecore_X_Randr_Crtc *not_moved, | |
| int nnot_moved, | | int nnot_moved, | |
| int dx, | | int dx, | |
| int dy); | | int dy); | |
|
| EAPI Eina_Bool ecore_x_randr_move_crtcs( | | EAPI Eina_Bool | |
| Ecore_X_Window root, | | ecore_x_randr_move_crtcs(Ecore_X_Window root, | |
| const Ecore_X_Randr_Crtc *crtcs, | | const Ecore_X_Randr_Crtc *crtcs, | |
| int ncrtc, | | int ncrtc, | |
| int dx, | | int dx, | |
| int dy); | | int dy); | |
| EAPI void | | EAPI void | |
| ecore_x_randr_mode_size_get(Ecore_X_Window root, | | ecore_x_randr_mode_size_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Mode mode, | | Ecore_X_Randr_Mode mode, | |
| int *w, | | int *w, | |
| int *h); | | int *h); | |
| EAPI Ecore_X_Randr_Connection_Status | | EAPI Ecore_X_Randr_Connection_Status | |
| ecore_x_randr_output_connection_status_get(Ecore_X_Window root, | | ecore_x_randr_output_connection_status_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Output output); | | Ecore_X_Randr_Output output); | |
| EAPI void | | EAPI void | |
| ecore_x_randr_output_size_mm_get(Ecore_X_Window root, | | ecore_x_randr_output_size_mm_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Output output, | | Ecore_X_Randr_Output output, | |
| int *w, | | int *w, | |
| int *h); | | int *h); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
| ecore_x_randr_output_crtc_set(Ecore_X_Window root, | | ecore_x_randr_output_crtc_set(Ecore_X_Window root, | |
| Ecore_X_Randr_Output output, | | Ecore_X_Randr_Output output, | |
| const Ecore_X_Randr_Crtc crtc); | | const Ecore_X_Randr_Crtc crtc); | |
| | | | |
|
| | | /* ecore_x_randr_12_edid.c */ | |
| | | | |
| | | /* | |
| | | * @brief Validates the header from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return EINA_TRUE, if the header is valid. Else EINA_FALSE. | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_x_randr_edid_has_valid_header(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Checks whether a display's EDID has a valid checksum. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return EINA_TRUE, if the checksum is valid. Else EINA_FALSE. | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Get the encoded version from raw EDID data. | |
| | | * | |
| | | * The return value has the minor version in the lowest 8 bits, and the maj | |
| | | or | |
| | | * version in all the rest of the bits. i.e. | |
| | | * | |
| | | * minor = (version & 0x000000ff); | |
| | | * major = (version & 0xffffff00) >> 8; | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return The encoded major and minor version encasuplated an int. | |
| | | */ | |
| | | EAPI int | |
| | | ecore_x_randr_edid_version_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Get the encoded manufacturer from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return The encoded manufacturer identifier. | |
| | | */ | |
| | | EAPI char * | |
| | | ecore_x_randr_edid_manufacturer_name_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Get the encoded name from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return The encoded manufacturer identifier. | |
| | | */ | |
| | | EAPI char * | |
| | | ecore_x_randr_edid_display_name_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Get the encoded ASCII from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return The encoded ASCII display identifier. | |
| | | */ | |
| | | EAPI char * | |
| | | ecore_x_randr_edid_display_ascii_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Get the encoded serial identifier from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return The encoded serial identifier. | |
| | | */ | |
| | | EAPI char * | |
| | | ecore_x_randr_edid_display_serial_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Get the encoded model number from raw EDID data. | |
| | | * | |
| | | * The manufacturer ID table is necessary for a useful description. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return The encoded model number. | |
| | | */ | |
| | | EAPI int | |
| | | ecore_x_randr_edid_model_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Get the manufacturer serial number from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return The encoded serial manufacturer serial number. | |
| | | */ | |
| | | EAPI int | |
| | | ecore_x_randr_edid_manufacturer_serial_number_get(unsigned char *edid, | |
| | | unsigned long edid_length | |
| | | ); | |
| | | | |
| | | /* | |
| | | * @brief Get the manufacturer model number from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return The manufacturer's model number. | |
| | | */ | |
| | | EAPI int | |
| | | ecore_x_randr_edid_manufacturer_model_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Looks up the DPMS support from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return EINA_TRUE, if DPMS is supported in some way. Else EINA_FALSE. | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_x_randr_edid_dpms_available_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Looks up the DPMS Standby support from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return EINA_TRUE, if DPMS Standby is supported. Else EINA_FALSE. | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_x_randr_edid_dpms_standby_available_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Looks up the DPMS Suspend support from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return EINA_TRUE, if DPMS Suspend is supported. Else EINA_FALSE. | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_x_randr_edid_dpms_suspend_available_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Looks up the DPMS Off support from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return EINA_TRUE, if DPMS Off is supported. Else EINA_FALSE. | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_x_randr_edid_dpms_off_available_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Get the preferred aspect ratio from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return The preferred aspect ratio. | |
| | | */ | |
| | | EAPI Ecore_X_Randr_Edid_Aspect_Ratio | |
| | | ecore_x_randr_edid_display_aspect_ratio_preferred_get(unsigned char *edid, | |
| | | unsigned long edid_le | |
| | | ngth); | |
| | | | |
| | | /* | |
| | | * @brief Get the supported aspect ratios from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return The supported aspect ratios. | |
| | | */ | |
| | | EAPI Ecore_X_Randr_Edid_Aspect_Ratio | |
| | | ecore_x_randr_edid_display_aspect_ratios_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Get the supported colorschemes from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return The supported colorschemes. | |
| | | */ | |
| | | EAPI Ecore_X_Randr_Edid_Display_Colorscheme | |
| | | ecore_x_randr_edid_display_colorscheme_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Get the display type from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return EINA_TRUE, if the display is a digital one. Else EINA_FALSE. | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_x_randr_edid_display_type_digital_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| | | /* | |
| | | * @brief Get the display interface type from raw EDID data. | |
| | | * | |
| | | * @param edid the edid structure | |
| | | * @param edid_length length of the edid structure | |
| | | * @return The interface type. | |
| | | */ | |
| | | EAPI Ecore_X_Randr_Edid_Display_Interface_Type | |
| | | ecore_x_randr_edid_display_interface_type_get(unsigned char *edid, | |
| | | unsigned long edid_length); | |
| | | | |
| /* ecore_x_randr_13.c */ | | /* ecore_x_randr_13.c */ | |
| EAPI void | | EAPI void | |
|
| ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root, double level) | | ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root, | |
| ; | | double level); | |
| EAPI double | | EAPI double | |
| ecore_x_randr_output_backlight_level_get(Ecore_X_Window root, | | ecore_x_randr_output_backlight_level_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Output output); | | Ecore_X_Randr_Output output); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
| ecore_x_randr_output_backlight_level_set(Ecore_X_Window root, | | ecore_x_randr_output_backlight_level_set(Ecore_X_Window root, | |
| Ecore_X_Randr_Output output, | | Ecore_X_Randr_Output output, | |
| double level); | | double level); | |
| EAPI Ecore_X_Randr_Output | | EAPI Ecore_X_Randr_Output | |
|
| ecore_x_randr_primary_output_get(Ecore_X_Window root); | | ecore_x_randr_primary_output_get(Ecore_X_Window root); | |
| EAPI void | | EAPI void | |
|
| ecore_x_randr_primary_output_set(Ecore_X_Window root, | | ecore_x_randr_primary_output_set(Ecore_X_Window root, | |
| Ecore_X_Randr_Output output); | | Ecore_X_Randr_Output output); | |
| EAPI Ecore_X_Render_Subpixel_Order | | EAPI Ecore_X_Render_Subpixel_Order | |
| ecore_x_randr_output_subpixel_order_get(Ecore_X_Window root, | | ecore_x_randr_output_subpixel_order_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Output output); | | Ecore_X_Randr_Output output); | |
| EAPI unsigned char * | | EAPI unsigned char * | |
| ecore_x_randr_output_edid_get(Ecore_X_Window root, | | ecore_x_randr_output_edid_get(Ecore_X_Window root, | |
| Ecore_X_Randr_Output output, | | Ecore_X_Randr_Output output, | |
| unsigned long *length); | | unsigned long *length); | |
| EAPI Ecore_X_Randr_Output * | | EAPI Ecore_X_Randr_Output * | |
| ecore_x_randr_output_wired_clones_get(Ecore_X_Window root, | | ecore_x_randr_output_wired_clones_get(Ecore_X_Window root, | |
| | | | |
| skipping to change at line 2739 | | skipping to change at line 3195 | |
| int *w, | | int *w, | |
| int *h); | | int *h); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
| ecore_x_randr_crtc_tracking_area_set(Ecore_X_Window root, | | ecore_x_randr_crtc_tracking_area_set(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc crtc, | | Ecore_X_Randr_Crtc crtc, | |
| int x, | | int x, | |
| const int y, | | const int y, | |
| const int w, | | const int w, | |
| const int h); | | const int h); | |
| EAPI Eina_Rectangle * | | EAPI Eina_Rectangle * | |
|
| ecore_x_randr_crtc_border_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc | | ecore_x_randr_crtc_border_area_get(Ecore_X_Window root, | |
| crtc); | | Ecore_X_Randr_Crtc crtc); | |
| EAPI Eina_Bool | | EAPI Eina_Bool | |
| ecore_x_randr_crtc_border_area_set(Ecore_X_Window root, | | ecore_x_randr_crtc_border_area_set(Ecore_X_Window root, | |
| Ecore_X_Randr_Crtc crtc, | | Ecore_X_Randr_Crtc crtc, | |
| int left, | | int left, | |
| const int top, | | const int top, | |
| const int right, | | const int right, | |
| const int bottom); | | const int bottom); | |
| | | | |
| /* XRender Support (horrendously incomplete) */ | | /* XRender Support (horrendously incomplete) */ | |
|
| typedef Ecore_X_ID Ecore_X_Picture; | | typedef Ecore_X_ID Ecore_X_Picture; | |
| | | | |
| /* XFixes Extension Support */ | | /* XFixes Extension Support */ | |
|
| typedef Ecore_X_ID Ecore_X_Region; | | typedef Ecore_X_ID Ecore_X_Region; | |
| | | | |
|
| typedef enum _Ecore_X_Region_Type { | | typedef enum _Ecore_X_Region_Type | |
| | | { | |
| ECORE_X_REGION_BOUNDING, | | ECORE_X_REGION_BOUNDING, | |
| ECORE_X_REGION_CLIP | | ECORE_X_REGION_CLIP | |
| } Ecore_X_Region_Type; | | } Ecore_X_Region_Type; | |
| | | | |
|
| EAPI Ecore_X_Region ecore_x_region_new(Ecore_X_Rectangle *rects, in | | EAPI Ecore_X_Region | |
| t num); | | ecore_x_region_new(Ecore_X_Rectangle *rects, | |
| EAPI Ecore_X_Region ecore_x_region_new_from_bitmap(Ecore_X_Pixmap b | | int num); | |
| itmap); | | EAPI Ecore_X_Region | |
| EAPI Ecore_X_Region ecore_x_region_new_from_window(Ecore_X_Window | | ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap); | |
| win, | | EAPI Ecore_X_Region | |
| Ecore_X_Region_T | | ecore_x_region_new_from_window(Ecore_X_Window win, | |
| ype type); | | Ecore_X_Region_Type type); | |
| EAPI Ecore_X_Region ecore_x_region_new_from_gc(Ecore_X_GC gc); | | EAPI Ecore_X_Region | |
| EAPI Ecore_X_Region ecore_x_region_new_from_picture(Ecore_X_Picture | | ecore_x_region_new_from_gc(Ecore_X_GC gc); | |
| picture); | | EAPI Ecore_X_Region | |
| EAPI void ecore_x_region_free(Ecore_X_Region region); | | ecore_x_region_new_from_picture(Ecore_X_Picture picture); | |
| EAPI void ecore_x_region_set(Ecore_X_Region region, | | EAPI void | |
| Ecore_X_Rectangle *rects, | | ecore_x_region_free(Ecore_X_Region region); | |
| int num); | | EAPI void | |
| EAPI void ecore_x_region_copy(Ecore_X_Region dest, | | ecore_x_region_set(Ecore_X_Region region, | |
| Ecore_X_Region source); | | Ecore_X_Rectangle *rects, | |
| EAPI void ecore_x_region_combine(Ecore_X_Region dest, | | int num); | |
| Ecore_X_Region source1, | | EAPI void | |
| Ecore_X_Region source2); | | ecore_x_region_copy(Ecore_X_Region dest, | |
| EAPI void ecore_x_region_intersect(Ecore_X_Region dest, | | Ecore_X_Region source); | |
| Ecore_X_Region source1 | | EAPI void | |
| , | | ecore_x_region_combine(Ecore_X_Region dest, | |
| Ecore_X_Region source2 | | Ecore_X_Region source1, | |
| ); | | Ecore_X_Region source2); | |
| EAPI void ecore_x_region_subtract(Ecore_X_Region dest, | | EAPI void | |
| Ecore_X_Region source1, | | ecore_x_region_intersect(Ecore_X_Region dest, | |
| Ecore_X_Region source2) | | Ecore_X_Region source1, | |
| ; | | Ecore_X_Region source2); | |
| EAPI void ecore_x_region_invert(Ecore_X_Region dest, | | EAPI void | |
| Ecore_X_Rectangle *bounds | | ecore_x_region_subtract(Ecore_X_Region dest, | |
| , | | Ecore_X_Region source1, | |
| Ecore_X_Region source | | Ecore_X_Region source2); | |
| ); | | EAPI void | |
| EAPI void ecore_x_region_translate(Ecore_X_Region region, | | ecore_x_region_invert(Ecore_X_Region dest, | |
| int dx, | | Ecore_X_Rectangle *bounds, | |
| int dy); | | Ecore_X_Region source); | |
| EAPI void ecore_x_region_extents(Ecore_X_Region dest, | | EAPI void | |
| Ecore_X_Region source); | | ecore_x_region_translate(Ecore_X_Region region, | |
| EAPI void ecore_x_region_fetch_prefetch(Ecore_X_Region re | | int dx, | |
| gion); | | int dy); | |
| EAPI void ecore_x_region_fetch_fetch(void); | | EAPI void | |
| EAPI Ecore_X_Rectangle * ecore_x_region_fetch(Ecore_X_Region region, | | ecore_x_region_extents(Ecore_X_Region dest, | |
| int *num, | | Ecore_X_Region source); | |
| Ecore_X_Rectangle *bounds) | | EAPI Ecore_X_Rectangle * | |
| ; | | ecore_x_region_fetch(Ecore_X_Region region, | |
| EAPI void ecore_x_region_expand(Ecore_X_Region dest, | | int *num, | |
| Ecore_X_Region source, | | Ecore_X_Rectangle *bounds); | |
| unsigned int left, | | EAPI void | |
| unsigned int right, | | ecore_x_region_expand(Ecore_X_Region dest, | |
| unsigned int top, | | Ecore_X_Region source, | |
| unsigned int bottom); | | unsigned int left, | |
| EAPI void ecore_x_region_gc_clip_set(Ecore_X_Region regio | | unsigned int right, | |
| n, | | unsigned int top, | |
| Ecore_X_GC gc, | | unsigned int bottom); | |
| int x_ori | | EAPI void | |
| gin, | | ecore_x_region_gc_clip_set(Ecore_X_Region region, | |
| int y_ori | | Ecore_X_GC gc, | |
| gin); | | int x_origin, | |
| EAPI void ecore_x_region_window_shape_set(Ecore_X_Region | | int y_origin); | |
| region, | | EAPI void | |
| Ecore_X_Window | | ecore_x_region_window_shape_set(Ecore_X_Region region, | |
| win, | | Ecore_X_Window win, | |
| Ecore_X_Shape_T | | Ecore_X_Shape_Type type, | |
| ype type, | | int x_offset, | |
| int | | int y_offset); | |
| x_offset, | | EAPI void | |
| int | | ecore_x_region_picture_clip_set(Ecore_X_Region region, | |
| y_offset); | | Ecore_X_Picture picture, | |
| EAPI void ecore_x_region_picture_clip_set(Ecore_X_Region | | int x_origin, | |
| region, | | int y_origin); | |
| Ecore_X_Picture | | | |
| picture, | | /** | |
| int | | * xfixes selection notification request. | |
| x_origin, | | * | |
| int | | * This lets you choose which selections you want to get notifications for. | |
| y_origin); | | * @param selection the selection atom. | |
| | | * @return EINA_TRUE on success, EINA_FALSE otherwise. | |
| | | * @since 1.1.0 | |
| | | */ | |
| | | EAPI Eina_Bool | |
| | | ecore_x_fixes_selection_notification_request(Ecore_X_Atom selection); | |
| | | | |
| /* XComposite Extension Support */ | | /* XComposite Extension Support */ | |
|
| EAPI Eina_Bool ecore_x_composite_query(void); | | EAPI Eina_Bool | |
| EAPI void ecore_x_composite_redirect_window(Ecore_X_Windo | | ecore_x_composite_query(void); | |
| w win, | | EAPI void | |
| Ecore_X_Compo | | ecore_x_composite_redirect_window(Ecore_X_Window win, | |
| site_Update_Type type); | | Ecore_X_Composite_Update_Type type); | |
| EAPI void ecore_x_composite_redirect_subwindows(Ecore_X_W | | EAPI void | |
| indow win, | | ecore_x_composite_redirect_subwindows(Ecore_X_Window win, | |
| Ecore_X_C | | Ecore_X_Composite_Update_Type type); | |
| omposite_Update_Type type); | | EAPI void | |
| EAPI void ecore_x_composite_unredirect_window(Ecore_X_Win | | ecore_x_composite_unredirect_window(Ecore_X_Window win, | |
| dow win, | | Ecore_X_Composite_Update_Type type); | |
| Ecore_X_Com | | EAPI void | |
| posite_Update_Type type); | | ecore_x_composite_unredirect_subwindows(Ecore_X_Window win, | |
| EAPI void ecore_x_composite_unredirect_subwindows(Ecore_X | | Ecore_X_Composite_Update_Type type) | |
| _Window win, | | ; | |
| Ecore_X | | EAPI Ecore_X_Pixmap | |
| _Composite_Update_Type type); | | ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win); | |
| EAPI Ecore_X_Pixmap ecore_x_composite_name_window_pixmap_get(Ecore_ | | EAPI void | |
| X_Window win); | | ecore_x_composite_window_events_disable(Ecore_X_Window win); | |
| EAPI void ecore_x_composite_window_events_disable(Ecore_X | | EAPI void | |
| _Window win); | | ecore_x_composite_window_events_enable(Ecore_X_Window win); | |
| EAPI void ecore_x_composite_window_events_enable(Ecore_X_ | | EAPI Ecore_X_Window | |
| Window win); | | ecore_x_composite_render_window_enable(Ecore_X_Window root); | |
| EAPI Ecore_X_Window ecore_x_composite_render_window_enable(Ecore_X_ | | EAPI void | |
| Window root); | | ecore_x_composite_render_window_disable(Ecore_X_Window root); | |
| EAPI void ecore_x_composite_render_window_disable(Ecore_X | | | |
| _Window root); | | | |
| | | | |
| /* XDamage Extension Support */ | | /* XDamage Extension Support */ | |
|
| typedef Ecore_X_ID Ecore_X_Damage; | | typedef Ecore_X_ID Ecore_X_Damage; | |
| | | | |
|
| typedef enum _Ecore_X_Damage_Report_Level { | | typedef enum _Ecore_X_Damage_Report_Level | |
| | | { | |
| ECORE_X_DAMAGE_REPORT_RAW_RECTANGLES, | | ECORE_X_DAMAGE_REPORT_RAW_RECTANGLES, | |
| ECORE_X_DAMAGE_REPORT_DELTA_RECTANGLES, | | ECORE_X_DAMAGE_REPORT_DELTA_RECTANGLES, | |
| ECORE_X_DAMAGE_REPORT_BOUNDING_BOX, | | ECORE_X_DAMAGE_REPORT_BOUNDING_BOX, | |
| ECORE_X_DAMAGE_REPORT_NON_EMPTY | | ECORE_X_DAMAGE_REPORT_NON_EMPTY | |
| } Ecore_X_Damage_Report_Level; | | } Ecore_X_Damage_Report_Level; | |
| | | | |
| struct _Ecore_X_Event_Damage | | struct _Ecore_X_Event_Damage | |
| { | | { | |
| Ecore_X_Damage_Report_Level level; | | Ecore_X_Damage_Report_Level level; | |
| Ecore_X_Drawable drawable; | | Ecore_X_Drawable drawable; | |
| Ecore_X_Damage damage; | | Ecore_X_Damage damage; | |
| int more; | | int more; | |
| Ecore_X_Time time; | | Ecore_X_Time time; | |
| Ecore_X_Rectangle area; | | Ecore_X_Rectangle area; | |
| Ecore_X_Rectangle geometry; | | Ecore_X_Rectangle geometry; | |
| }; | | }; | |
| | | | |
|
| typedef struct _Ecore_X_Event_Damage Ecore_X_Event_Damage; | | typedef struct _Ecore_X_Event_Damage Ecore_X_Event_Damage; | |
| | | | |
|
| EAPI Eina_Bool ecore_x_damage_query(void); | | EAPI Eina_Bool | |
| EAPI Ecore_X_Damage ecore_x_damage_new(Ecore_X_Drawable d, | | ecore_x_damage_query(void); | |
| Ecore_X_Damage_Report_Level lev | | EAPI Ecore_X_Damage | |
| el); | | ecore_x_damage_new(Ecore_X_Drawable d, | |
| EAPI void ecore_x_damage_free(Ecore_X_Damage damage); | | Ecore_X_Damage_Report_Level level); | |
| EAPI void ecore_x_damage_subtract(Ecore_X_Damage damage, | | EAPI void | |
| Ecore_X_Region repair, | | ecore_x_damage_free(Ecore_X_Damage damage); | |
| Ecore_X_Region parts); | | EAPI void | |
| | | ecore_x_damage_subtract(Ecore_X_Damage damage, | |
| EAPI Eina_Bool ecore_x_screen_is_composited(int screen); | | Ecore_X_Region repair, | |
| EAPI void ecore_x_screen_is_composited_set(int sc | | Ecore_X_Region parts); | |
| reen, | | | |
| Ecore_X_Window wi | | | |
| n); | | | |
| | | | |
| EAPI Eina_Bool ecore_x_dpms_query(void); | | | |
| EAPI void ecore_x_dpms_capable_get_prefetch(void); | | | |
| EAPI void ecore_x_dpms_capable_get_fetch(void); | | | |
| EAPI Eina_Bool ecore_x_dpms_capable_get(void); | | | |
| EAPI void ecore_x_dpms_enable_get_prefetch(void); | | | |
| EAPI void ecore_x_dpms_enable_get_fetch(void); | | | |
| EAPI Eina_Bool ecore_x_dpms_enabled_get(void); | | | |
| EAPI void ecore_x_dpms_enabled_set(int enabled); | | | |
| EAPI void ecore_x_dpms_timeouts_get_prefetch(void); | | | |
| EAPI void ecore_x_dpms_timeouts_get_fetch(void); | | | |
| EAPI void ecore_x_dpms_timeouts_get(unsigned int *standby, | | | |
| unsigned int *suspend, | | | |
| unsigned int *off); | | | |
| EAPI Eina_Bool ecore_x_dpms_timeouts_set(unsigned int standby, | | | |
| unsigned int suspend, | | | |
| unsigned int off); | | | |
| EAPI unsigned int ecore_x_dpms_timeout_standby_get(void); | | | |
| EAPI unsigned int ecore_x_dpms_timeout_suspend_get(void); | | | |
| EAPI unsigned int ecore_x_dpms_timeout_off_get(void); | | | |
| EAPI void ecore_x_dpms_timeout_standby_set(unsigned int new_ | | | |
| timeout); | | | |
| EAPI void ecore_x_dpms_timeout_suspend_set(unsigned int new_ | | | |
| timeout); | | | |
| EAPI void ecore_x_dpms_timeout_off_set(unsigned int new_time | | | |
| out); | | | |
| | | | |
| EAPI Eina_Bool ecore_x_test_fake_key_down(const char *key); | | | |
| EAPI Eina_Bool ecore_x_test_fake_key_up(const char *key); | | | |
| EAPI Eina_Bool ecore_x_test_fake_key_press(const char *key); | | | |
| EAPI const char * ecore_x_keysym_string_get(int keysym); | | | |
| | | | |
| typedef struct _Ecore_X_Image Ecore_X_Image; | | | |
| | | | |
| EAPI Ecore_X_Image * ecore_x_image_new(int w, | | | |
| int h, | | | |
| Ecore_X_Visual vis, | | | |
| int depth); | | | |
| EAPI void ecore_x_image_free(Ecore_X_Image *im); | | | |
| EAPI Eina_Bool ecore_x_image_get(Ecore_X_Image *im, | | | |
| Ecore_X_Drawable draw, | | | |
| int x, | | | |
| int y, | | | |
| int sx, | | | |
| int sy, | | | |
| int w, | | | |
| int h); | | | |
| EAPI void ecore_x_image_put(Ecore_X_Image *im, | | | |
| Ecore_X_Drawable draw, | | | |
| Ecore_X_GC gc, | | | |
| int x, | | | |
| int y, | | | |
| int sx, | | | |
| int sy, | | | |
| int w, | | | |
| int h); | | | |
| EAPI void * ecore_x_image_data_get(Ecore_X_Image *im, | | | |
| int *bpl, | | | |
| int *rows, | | | |
| int *bpp); | | | |
| EAPI Eina_Bool ecore_x_image_is_argb32_get(Ecore_X_Image *im); | | | |
| | | | |
| EAPI Eina_Bool ecore_x_image_to_argb_convert(void *src, int sbpp, | | | |
| int sbpl, | | | |
| Ecore_X_Colormap c, | | | |
| Ecore_X_Visual v, | | | |
| int x, int y, int w, int | | | |
| h, | | | |
| unsigned int *dst, | | | |
| int dbpl, | | | |
| int dx, int dy); | | | |
| | | | |
|
| EAPI Eina_Bool ecore_x_input_multi_select(Ecore_X_Window win); | | EAPI Eina_Bool | |
| | | ecore_x_screen_is_composited(int screen); | |
| | | EAPI void | |
| | | ecore_x_screen_is_composited_set(int screen, | |
| | | Ecore_X_Window win); | |
| | | | |
| | | EAPI Eina_Bool | |
| | | ecore_x_dpms_query(void); | |
| | | EAPI Eina_Bool | |
| | | ecore_x_dpms_capable_get(void); | |
| | | EAPI Eina_Bool | |
| | | ecore_x_dpms_enabled_get(void); | |
| | | EAPI void | |
| | | ecore_x_dpms_enabled_set(int enabled); | |
| | | EAPI void | |
| | | ecore_x_dpms_timeouts_get(unsigned int *standby, | |
| | | unsigned int *suspend, | |
| | | unsigned int *off); | |
| | | EAPI Eina_Bool | |
| | | ecore_x_dpms_timeouts_set(unsigned int standby, | |
| | | unsigned int suspend, | |
| | | unsigned int off); | |
| | | EAPI unsigned int | |
| | | ecore_x_dpms_timeout_standby_get(void); | |
| | | EAPI unsigned int | |
| | | ecore_x_dpms_timeout_suspend_get(void); | |
| | | EAPI unsigned int | |
| | | ecore_x_dpms_timeout_off_get(void); | |
| | | EAPI void | |
| | | ecore_x_dpms_timeout_standby_set(unsigned int new_timeout); | |
| | | EAPI void | |
| | | ecore_x_dpms_timeout_suspend_set(unsigned int new_timeout); | |
| | | EAPI void | |
| | | ecore_x_dpms_timeout_off_set(unsigned int new_timeout); | |
| | | | |
| | | EAPI Eina_Bool | |
| | | ecore_x_test_fake_key_down(const char *key); | |
| | | EAPI Eina_Bool | |
| | | ecore_x_test_fake_key_up(const char *key); | |
| | | EAPI Eina_Bool | |
| | | ecore_x_test_fake_key_press(const char *key); | |
| | | EAPI const char * | |
| | | ecore_x_keysym_string_get(int keysym); | |
| | | | |
| | | typedef struct _Ecore_X_Image Ecore_X_Image; | |
| | | | |
| | | EAPI Ecore_X_Image * | |
| | | ecore_x_image_new(int w, | |
| | | int h, | |
| | | Ecore_X_Visual vis, | |
| | | int depth); | |
| | | EAPI void | |
| | | ecore_x_image_free(Ecore_X_Image *im); | |
| | | EAPI Eina_Bool | |
| | | ecore_x_image_get(Ecore_X_Image *im, | |
| | | Ecore_X_Drawable draw, | |
| | | int x, | |
| | | int y, | |
| | | int sx, | |
| | | int sy, | |
| | | int w, | |
| | | int h); | |
| | | EAPI void | |
| | | ecore_x_image_put(Ecore_X_Image *im, | |
| | | Ecore_X_Drawable draw, | |
| | | Ecore_X_GC gc, | |
| | | int x, | |
| | | int y, | |
| | | int sx, | |
| | | int sy, | |
| | | int w, | |
| | | int h); | |
| | | EAPI void * | |
| | | ecore_x_image_data_get(Ecore_X_Image *im, | |
| | | int *bpl, | |
| | | int *rows, | |
| | | int *bpp); | |
| | | EAPI Eina_Bool | |
| | | ecore_x_image_is_argb32_get(Ecore_X_Image *im); | |
| | | | |
| | | EAPI Eina_Bool | |
| | | ecore_x_image_to_argb_convert(void *src, | |
| | | int sbpp, | |
| | | int sbpl, | |
| | | Ecore_X_Colormap c, | |
| | | Ecore_X_Visual v, | |
| | | int x, | |
| | | int y, | |
| | | int w, | |
| | | int h, | |
| | | unsigned int *dst, | |
| | | int dbpl, | |
| | | int dx, | |
| | | int dy); | |
| | | | |
| | | EAPI Eina_Bool | |
| | | ecore_x_input_multi_select(Ecore_X_Window win); | |
| | | | |
| | | EAPI Eina_Bool | |
| | | ecore_x_vsync_animator_tick_source_set(Ecore_X_Window win); | |
| | | | |
| | | typedef enum _Ecore_X_Gesture_Event_Mask | |
| | | { | |
| | | ECORE_X_GESTURE_EVENT_MASK_NONE = 0L, | |
| | | ECORE_X_GESTURE_EVENT_MASK_FLICK = (1L << 0), | |
| | | ECORE_X_GESTURE_EVENT_MASK_PAN = (1L << 1), | |
| | | ECORE_X_GESTURE_EVENT_MASK_PINCHROTATION = (1L << 2), | |
| | | ECORE_X_GESTURE_EVENT_MASK_TAP = (1L << 3), | |
| | | ECORE_X_GESTURE_EVENT_MASK_TAPNHOLD = (1L << 4), | |
| | | ECORE_X_GESTURE_EVENT_MASK_HOLD = (1L << 5), | |
| | | ECORE_X_GESTURE_EVENT_MASK_GROUP = (1L << 6) | |
| | | } Ecore_X_Gesture_Event_Mask; | |
| | | | |
| | | typedef enum _Ecore_X_Gesture_Event_Type | |
| | | { | |
| | | ECORE_X_GESTURE_EVENT_FLICK, | |
| | | ECORE_X_GESTURE_EVENT_PAN, | |
| | | ECORE_X_GESTURE_EVENT_PINCHROTATION, | |
| | | ECORE_X_GESTURE_EVENT_TAP, | |
| | | ECORE_X_GESTURE_EVENT_TAPNHOLD, | |
| | | ECORE_X_GESTURE_EVENT_HOLD, | |
| | | ECORE_X_GESTURE_EVENT_GROUP | |
| | | } Ecore_X_Gesture_Event_Type; | |
| | | | |
| | | typedef enum _Ecore_X_Gesture_Event_Subtype | |
| | | { | |
| | | ECORE_X_GESTURE_END, | |
| | | ECORE_X_GESTURE_BEGIN, | |
| | | ECORE_X_GESTURE_UPDATE, | |
| | | ECORE_X_GESTURE_DONE | |
| | | } Ecore_X_Gesture_Event_Subtype; | |
| | | | |
| | | typedef enum _Ecore_X_Gesture_Group_Subtype | |
| | | { | |
| | | ECORE_X_GESTURE_GROUP_REMOVED, | |
| | | ECORE_X_GESTURE_GROUP_ADDED, | |
| | | ECORE_X_GESTURE_GROUP_CURRENT | |
| | | } Ecore_X_Gesture_Group_Subtype; | |
| | | | |
| | | typedef enum _Ecore_X_Gesture_Direction | |
| | | { | |
| | | ECORE_X_GESTURE_NORTHWARD, | |
| | | ECORE_X_GESTURE_NORTHEASTWARD, | |
| | | ECORE_X_GESTURE_EASTWARD, | |
| | | ECORE_X_GESTURE_SOUTHEASTWARD, | |
| | | ECORE_X_GESTURE_SOUTHWARD, | |
| | | ECORE_X_GESTURE_SOUTHWESTWARD, | |
| | | ECORE_X_GESTURE_WESTWARD, | |
| | | ECORE_X_GESTURE_NORTHWESTWARD | |
| | | } Ecore_X_Gesture_Direction; | |
| | | | |
| | | struct _Ecore_X_Event_Gesture_Notify_Flick | |
| | | { | |
| | | Ecore_X_Window win; | |
| | | Ecore_X_Time time; | |
| | | Ecore_X_Gesture_Event_Subtype subtype; | |
| | | int num_fingers; | |
| | | int distance; | |
| | | Ecore_X_Time duration; | |
| | | Ecore_X_Gesture_Direction direction; | |
| | | double angle; | |
| | | }; | |
| | | | |
| | | struct _Ecore_X_Event_Gesture_Notify_Pan | |
| | | { | |
| | | Ecore_X_Window win; | |
| | | Ecore_X_Time time; | |
| | | Ecore_X_Gesture_Event_Subtype subtype; | |
| | | int num_fingers; | |
| | | int dx; | |
| | | int dy; | |
| | | int distance; | |
| | | Ecore_X_Time duration; | |
| | | Ecore_X_Gesture_Direction direction; | |
| | | }; | |
| | | | |
| | | struct _Ecore_X_Event_Gesture_Notify_PinchRotation | |
| | | { | |
| | | Ecore_X_Window win; | |
| | | Ecore_X_Time time; | |
| | | Ecore_X_Gesture_Event_Subtype subtype; | |
| | | int num_fingers; | |
| | | int distance; | |
| | | int cx; | |
| | | int cy; | |
| | | double zoom; | |
| | | double angle; | |
| | | }; | |
| | | | |
| | | struct _Ecore_X_Event_Gesture_Notify_Tap | |
| | | { | |
| | | Ecore_X_Window win; | |
| | | Ecore_X_Time time; | |
| | | Ecore_X_Gesture_Event_Subtype subtype; | |
| | | int num_fingers; | |
| | | int cx; | |
| | | int cy; | |
| | | int tap_repeat; | |
| | | Ecore_X_Time interval; | |
| | | }; | |
| | | | |
| | | struct _Ecore_X_Event_Gesture_Notify_TapNHold | |
| | | { | |
| | | Ecore_X_Window win; | |
| | | Ecore_X_Time time; | |
| | | Ecore_X_Gesture_Event_Subtype subtype; | |
| | | int num_fingers; | |
| | | int cx; | |
| | | int cy; | |
| | | Ecore_X_Time interval; | |
| | | Ecore_X_Time hold_time; | |
| | | }; | |
| | | | |
| | | struct _Ecore_X_Event_Gesture_Notify_Hold | |
| | | { | |
| | | Ecore_X_Window win; | |
| | | Ecore_X_Time time; | |
| | | Ecore_X_Gesture_Event_Subtype subtype; | |
| | | int num_fingers; | |
| | | int cx; | |
| | | int cy; | |
| | | Ecore_X_Time hold_time; | |
| | | }; | |
| | | | |
| | | struct _Ecore_X_Event_Gesture_Notify_Group | |
| | | { | |
| | | Ecore_X_Window win; | |
| | | Ecore_X_Time time; | |
| | | Ecore_X_Gesture_Group_Subtype subtype; | |
| | | int num_groups; | |
| | | int group_id; | |
| | | }; | |
| | | | |
| | | EAPI Eina_Bool | |
| | | ecore_x_gesture_supported(void); | |
| | | | |
| | | EAPI Eina_Bool | |
| | | ecore_x_gesture_events_select(Ecore_X_Window win, | |
| | | Ecore_X_Gesture_Event_Mask mask); | |
| | | | |
| | | EAPI Ecore_X_Gesture_Event_Mask | |
| | | ecore_x_gesture_events_selected_get(Ecore_X_Window win); | |
| | | | |
| | | EAPI Eina_Bool | |
| | | ecore_x_gesture_event_grab(Ecore_X_Window win, | |
| | | Ecore_X_Gesture_Event_Type type, | |
| | | int num_fingers); | |
| | | | |
| | | EAPI Eina_Bool | |
| | | ecore_x_gesture_event_ungrab(Ecore_X_Window win, | |
| | | Ecore_X_Gesture_Event_Type type, | |
| | | int num_fingers); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif // ifdef __cplusplus | | #endif // ifdef __cplusplus | |
| | | | |
| #include <Ecore_X_Atoms.h> | | #include <Ecore_X_Atoms.h> | |
| #include <Ecore_X_Cursor.h> | | #include <Ecore_X_Cursor.h> | |
| | | | |
| #endif // ifndef _ECORE_X_H | | #endif // ifndef _ECORE_X_H | |
| | | | |
End of changes. 104 change blocks. |
| 2017 lines changed or deleted | | 2486 lines changed or added | |
|