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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs