enlightenment/src/bin/e_hints.h

85 lines
3.6 KiB
C
Raw Normal View History

#ifdef E_TYPEDEFS
#else
#ifndef E_HINTS_H
#define E_HINTS_H
2013-08-20 01:59:41 -07:00
EINTERN void e_hints_init(Ecore_Window win, Ecore_Window propwin);
//EINTERN void e_hints_manager_init(E_Manager *man);
E_API void e_hints_client_list_set(void);
E_API void e_hints_client_stacking_set(void);
E_API void e_hints_active_window_set(E_Client *ec);
compositor rewrite / charlie-foxtrot situation huge fustercluck commit because there wasn't really a way to separate out the changes. better to just rip it all out at once. * compositor and window management completely rewritten. this was the goal for E19, but it pretty much required everything existing to be scrapped since it wasn't optimized, streamlined, or sensible. now instead of having the compositor strapped to the window manager like an outboard motor, it's housed more like an automobile engine. ** various comp structs have been merged into other places (eg. E_Comp_Zone is now just part of E_Zone where applicable), leading to a large deduplication of attributes ** awful E_Comp_Win is totally dead, having been replaced with e_comp_object smart objects which work just like normal canvas objects ** protocol-specific window management and compositor functionality is now kept exclusively in backend files ** e_pixmap api provides generic client finding and rendering api ** screen/xinerama screens are now provided directly by compositor on startup and re-set on change ** e_comp_render_update finally replaced with eina_tiler ** wayland compositor no longer creates X windows ** compositor e_layout removed entirely * e_container is gone. this was made unnecessary in E18, but I kept it to avoid having too much code churn in one release. its sole purpose was to catch some events and handle window stacking, both of which are now just done by the compositor infra * e_manager is just for screensaver and keybind stuff now, possibly remove later? * e_border is gone along with a lot of its api. e_client has replaced it, and e_client has been rewritten completely; some parts may be similar, but the design now relies upon having a functional compositor ** window configuration/focus functions are all removed. all windows are now managed solely with evas_object_X functions on the "frame" member of a client, just as any other canvas object can be managed. *** do NOT set interceptors on a client's comp_object. seriously. * startup order rewritten: compositor now starts much earlier, other things just use attrs and members of the compositor * ecore_x_pointer_xy_get usage replaced with ecore_evas_pointer_xy_get * e_popup is totally gone, existing usage replaced by e_comp_object_util_add where applicable, otherwise just placed normally on the canvas * deskmirror is (more) broken for now * illume is totally fucked * Ecore_X_Window replaced with Ecore_Window in most cases * edge binding XWindows replaced with regular canvas objects * some E_Win functionality has changed such that delete callbacks are now correctly called in ALL cases. various dialogs have been updated to not crash as a result comp files and descriptions: e_comp.c - overall compositor functions, rendering/update loop, shape cutting e_comp_x.c - X window management and compositor functionality e_comp_wl.c - Wayland surface management and compositor functionality e_comp_canvas.c - general compositor canvas functions and utilities e_comp_object.c - E_Client->frame member for managing clients as Evas_Objects, utility functions for adding objects to the compositor rendering systems additional authors: ivan.briano@intel.com feature: new compositor removal: e_border, e_container, e_popup
2014-01-14 17:19:12 -08:00
EINTERN void e_hints_window_init(E_Client *ec);
E_API void e_hints_window_state_set(E_Client *ec);
E_API void e_hints_window_state_get(E_Client *ec);
E_API void e_hints_window_type_set(E_Client *ec);
E_API void e_hints_window_type_get(E_Client *ec);
E_API void e_hints_window_visible_set(E_Client *ec);
E_API void e_hints_window_iconic_set(E_Client *ec);
E_API void e_hints_window_hidden_set(E_Client *ec);
E_API void e_hints_window_shade_direction_set(E_Client *ec, E_Direction dir);
E_API E_Direction e_hints_window_shade_direction_get(E_Client *ec);
E_API void e_hints_window_size_set(E_Client *ec);
E_API void e_hints_window_size_unset(E_Client *ec);
E_API int e_hints_window_size_get(E_Client *ec);
E_API void e_hints_window_shaded_set(E_Client *ec, int on);
E_API void e_hints_window_maximized_set(E_Client *ec, int horizontal, int vertical);
E_API void e_hints_window_fullscreen_set(E_Client *ec, int on);
E_API void e_hints_window_sticky_set(E_Client *ec, int on);
E_API void e_hints_window_stacking_set(E_Client *ec, E_Stacking stacking);
E_API void e_hints_window_desktop_set(E_Client *ec);
E_API void e_hints_window_e_state_set(E_Client *ec);
E_API void e_hints_window_e_state_get(E_Client *ec);
E_API void e_hints_window_qtopia_soft_menu_get(E_Client *ec);
E_API void e_hints_window_qtopia_soft_menus_get(E_Client *ec);
E_API void e_hints_window_steam_game_get(E_Client *ec);
E_API void e_hints_window_virtual_keyboard_state_get(E_Client *ec);
E_API void e_hints_window_virtual_keyboard_get(E_Client *ec);
2008-07-16 10:06:23 -07:00
E_API void e_hints_scale_update(void);
2013-08-20 01:59:41 -07:00
#ifdef E_COMP_X_H
E_API void e_hints_window_state_update(E_Client *ec, int state, int action);
extern E_API Ecore_X_Atom ATM__QTOPIA_SOFT_MENU;
extern E_API Ecore_X_Atom ATM__QTOPIA_SOFT_MENUS;
extern E_API Ecore_X_Atom ATM_GNOME_SM_PROXY;
extern E_API Ecore_X_Atom ATM_ENLIGHTENMENT_COMMS;
extern E_API Ecore_X_Atom ATM_ENLIGHTENMENT_VERSION;
extern E_API Ecore_X_Atom ATM_ENLIGHTENMENT_SCALE;
extern E_API Ecore_X_Atom ATM_NETWM_SHOW_WINDOW_MENU;
extern E_API Ecore_X_Atom ATM_NETWM_PERFORM_BUTTON_ACTION;
extern E_API Ecore_X_Atom ATM_GTK_FRAME_EXTENTS;
extern E_API Ecore_X_Atom ATM_STEAM_GAME;
2013-08-20 01:59:41 -07:00
#endif
#ifdef HAVE_WAYLAND
E_API const Eina_List * e_hints_aux_hint_supported_add(const char *hint);
E_API const Eina_List * e_hints_aux_hint_supported_del(const char *hint);
E_API const Eina_List * e_hints_aux_hint_supported_get(void);
E_API Eina_Bool e_hints_aux_hint_add(E_Client *ec, int32_t id, const char *name, const char *val);
E_API Eina_Bool e_hints_aux_hint_change(E_Client *ec, int32_t id, const char *val);
2017-09-21 10:31:04 -07:00
E_API Eina_Bool e_hints_aux_hint_add_fd(E_Client *ec, int32_t id, const char *name, int32_t fd);
E_API Eina_Bool e_hints_aux_hint_change_fd(E_Client *ec, int32_t id, int32_t fd);
E_API Eina_Bool e_hints_aux_hint_del(E_Client *ec, int32_t id);
E_API const char * e_hints_aux_hint_value_get(E_Client *ec, const char *name);
2017-09-21 10:31:04 -07:00
E_API Eina_Bool e_hints_aux_hint_add_with_pixmap(E_Pixmap *cp, int32_t id, const char *name, const char *val, int32_t fd);
E_API Eina_Bool e_hints_aux_hint_change_with_pixmap(E_Pixmap *cp, int32_t id, const char *val, int32_t fd);
E_API Eina_Bool e_hints_aux_hint_del_with_pixmap(E_Pixmap *cp, int32_t id);
E_API const char * e_hints_aux_hint_value_get_with_pixmap(E_Pixmap *cp, const char *name);
#endif
#endif
#endif