Enlightenment CVS committal Author : moom Project : e17 Module : proto
Dir : e17/proto/etk/src/lib Modified Files: etk_engine.c etk_engine.h etk_window.c etk_window.h Log Message: * [Window] Add etk_window_stacking_set/get() to change the stacking layer of a window ("normal", "always on top", "always below") =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_engine.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- etk_engine.c 1 Sep 2006 10:53:20 -0000 1.9 +++ etk_engine.c 1 Sep 2006 13:32:30 -0000 1.10 @@ -538,6 +538,30 @@ } /** + * @brief Calls the engines's method to set the stacking layer of the window + * @param window a window + * @param stacking the stacking layer to use + */ +void etk_engine_window_stacking_set(Etk_Window *window, Etk_Window_Stacking stacking) +{ + if (!_engine || !_engine->window_stacking_set) + return; + _engine->window_stacking_set(window, stacking); +} + +/** + * @brief Calls the engines's method to get the stacking layer of the window + * @param window a window + * @return Returns the stacking layer of the window + */ +Etk_Window_Stacking etk_engine_window_stacking_get(Etk_Window *window) +{ + if (!_engine || !_engine->window_stacking_get) + return ETK_WINDOW_NORMAL; + return _engine->window_stacking_get(window); +} + +/** * @brief Calls the engines's method to set whether a window is sticky. A sticky window is a window that appears on all * the virtual desktops * @param window a window @@ -859,7 +883,9 @@ INHERIT(window_fullscreen_set); INHERIT(window_fullscreen_get); INHERIT(window_raise); - INHERIT(window_lower); + INHERIT(window_lower); + INHERIT(window_stacking_set); + INHERIT(window_stacking_get); INHERIT(window_sticky_set); INHERIT(window_sticky_get); INHERIT(window_focused_set); =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_engine.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- etk_engine.h 1 Sep 2006 10:53:20 -0000 1.9 +++ etk_engine.h 1 Sep 2006 13:32:30 -0000 1.10 @@ -4,6 +4,7 @@ #include "Evas.h" #include "etk_toplevel_widget.h" +#include "etk_window.h" #include "etk_types.h" struct Etk_Engine @@ -39,7 +40,9 @@ void (*window_fullscreen_set)(Etk_Window *window, Etk_Bool fullscreen); Etk_Bool (*window_fullscreen_get)(Etk_Window *window); void (*window_raise)(Etk_Window *window); - void (*window_lower)(Etk_Window *window); + void (*window_lower)(Etk_Window *window); + void (*window_stacking_set)(Etk_Window *window, Etk_Window_Stacking stacking); + Etk_Window_Stacking (*window_stacking_get)(Etk_Window *window); void (*window_sticky_set)(Etk_Window *window, Etk_Bool sticky); Etk_Bool (*window_sticky_get)(Etk_Window *window); void (*window_focused_set)(Etk_Window *window, Etk_Bool focused); @@ -110,7 +113,9 @@ void etk_engine_window_fullscreen_set(Etk_Window *window, Etk_Bool fullscreen); Etk_Bool etk_engine_window_fullscreen_get(Etk_Window *window); void etk_engine_window_raise(Etk_Window *window); -void etk_engine_window_lower(Etk_Window *window); +void etk_engine_window_lower(Etk_Window *window); +void etk_engine_window_stacking_set(Etk_Window *window, Etk_Window_Stacking stacking); +Etk_Window_Stacking etk_engine_window_stacking_get(Etk_Window *window); void etk_engine_window_sticky_set(Etk_Window *window, Etk_Bool on); Etk_Bool etk_engine_window_sticky_get(Etk_Window *window); void etk_engine_window_focused_set(Etk_Window *window, Etk_Bool focused); =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_window.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- etk_window.c 1 Sep 2006 10:53:20 -0000 1.37 +++ etk_window.c 1 Sep 2006 13:32:30 -0000 1.38 @@ -238,6 +238,7 @@ * @param window_to_modal the window to make modal * @param window the window on which @a window_to_modal will modal'ed on, or NULL to disable the modal state */ +/* TODO: grab the input */ void etk_window_modal_for_window(Etk_Window *window_to_modal, Etk_Window *window) { if (window_to_modal) @@ -265,6 +266,30 @@ if (!window) return; etk_engine_window_lower(window); +} + +/** + * @brief Sets the stacking layer of the window (normal, "always on top" or "always below") + * @param window a window + * @param stacking the stacking layer to use + */ +void etk_window_stacking_set(Etk_Window *window, Etk_Window_Stacking stacking) +{ + if (!window) + return; + etk_engine_window_stacking_set(window, stacking); +} + +/** + * @brief Gets the stacking layer of the window + * @param window a window + * @return Returns the stacking layer of the window + */ +Etk_Window_Stacking etk_window_stacking_get(Etk_Window *window) +{ + if (!window) + return ETK_WINDOW_NORMAL; + return etk_engine_window_stacking_get(window); } /** =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_window.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- etk_window.h 1 Sep 2006 06:41:17 -0000 1.15 +++ etk_window.h 1 Sep 2006 13:32:30 -0000 1.16 @@ -18,6 +18,14 @@ /** @brief Check if the object is an Etk_Window */ #define ETK_IS_WINDOW(obj) (ETK_OBJECT_CHECK_TYPE((obj), ETK_WINDOW_TYPE)) +/** @brief Describes how the window is stacked */ +typedef enum Etk_Window_Stacking +{ + ETK_WINDOW_NORMAL, /**< The window is stacked in the default layer */ + ETK_WINDOW_ABOVE, /**< The window is stacked above all the other windows */ + ETK_WINDOW_BELOW, /**< The window is stacked below all the other windows */ +} Etk_Window_Stacking; + /** * @struct Etk_Window * @brief A window which can be borderless, decorated or not, sticky, ... @@ -48,12 +56,12 @@ void (*delete_request_cb)(Etk_Window *window); }; -Etk_Type *etk_window_type_get(); +Etk_Type *etk_window_type_get(); Etk_Widget *etk_window_new(); -void etk_window_title_set(Etk_Window *window, const char *title); +void etk_window_title_set(Etk_Window *window, const char *title); const char *etk_window_title_get(Etk_Window *window); -void etk_window_wmclass_set(Etk_Window *window, const char *window_name, const char *window_class); +void etk_window_wmclass_set(Etk_Window *window, const char *window_name, const char *window_class); void etk_window_move(Etk_Window *window, int x, int y); void etk_window_resize(Etk_Window *window, int w, int h); @@ -62,35 +70,36 @@ void etk_window_move_to_mouse(Etk_Window *window); void etk_window_modal_for_window(Etk_Window *window_to_modal, Etk_Window *window); -void etk_window_raise(Etk_Window *window); -void etk_window_lower(Etk_Window *window); +void etk_window_raise(Etk_Window *window); +void etk_window_lower(Etk_Window *window); +void etk_window_stacking_set(Etk_Window *window, Etk_Window_Stacking stacking); +Etk_Window_Stacking etk_window_stacking_get(Etk_Window *window); -void etk_window_iconified_set(Etk_Window *window, Etk_Bool iconified); +void etk_window_iconified_set(Etk_Window *window, Etk_Bool iconified); Etk_Bool etk_window_iconified_get(Etk_Window *window); -void etk_window_maximized_set(Etk_Window *window, Etk_Bool maximized); +void etk_window_maximized_set(Etk_Window *window, Etk_Bool maximized); Etk_Bool etk_window_maximized_get(Etk_Window *window); -void etk_window_fullscreen_set(Etk_Window *window, Etk_Bool fullscreen); +void etk_window_fullscreen_set(Etk_Window *window, Etk_Bool fullscreen); Etk_Bool etk_window_fullscreen_get(Etk_Window *window); -void etk_window_focused_set(Etk_Window *window, Etk_Bool focused); +void etk_window_focused_set(Etk_Window *window, Etk_Bool focused); Etk_Bool etk_window_focused_get(Etk_Window *window); -void etk_window_sticky_set(Etk_Window *window, Etk_Bool sticky); +void etk_window_sticky_set(Etk_Window *window, Etk_Bool sticky); Etk_Bool etk_window_sticky_get(Etk_Window *window); -void etk_window_decorated_set(Etk_Window *window, Etk_Bool decorated); +void etk_window_decorated_set(Etk_Window *window, Etk_Bool decorated); Etk_Bool etk_window_decorated_get(Etk_Window *window); -void etk_window_shaped_set(Etk_Window *window, Etk_Bool shaped); +void etk_window_shaped_set(Etk_Window *window, Etk_Bool shaped); Etk_Bool etk_window_shaped_get(Etk_Window *window); -void etk_window_skip_taskbar_hint_set(Etk_Window *window, Etk_Bool skip_taskbar_hint); +void etk_window_skip_taskbar_hint_set(Etk_Window *window, Etk_Bool skip_taskbar_hint); Etk_Bool etk_window_skip_taskbar_hint_get(Etk_Window *window); -void etk_window_skip_pager_hint_set(Etk_Window *window, Etk_Bool skip_pager_hint); +void etk_window_skip_pager_hint_set(Etk_Window *window, Etk_Bool skip_pager_hint); Etk_Bool etk_window_skip_pager_hint_get(Etk_Window *window); /* Misc */ Etk_Bool etk_window_hide_on_delete(Etk_Object *window, void *data); - /** @} */ #endif ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs