Enlightenment CVS committal
Author : atmosphere
Project : misc
Module : engage
Dir : misc/engage/src
Modified Files:
main.c window.c
Log Message:
hook in an ecore exit callback, check out ~/.ecore/engage/ :) add a timer to possibly
handle mouse and focusing in/out a little better, hook in some pre/post render, mouse
in/out and a delete request callbacks for ecore_evas
===================================================================
RCS file: /cvsroot/enlightenment/misc/engage/src/main.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- main.c 18 Apr 2004 16:54:54 -0000 1.3
+++ main.c 26 Apr 2004 03:46:58 -0000 1.4
@@ -7,6 +7,13 @@
static int handle_idle(void *data);
bool need_redraw = false;
+static int
+exit_cb(void *data, int type, void *event)
+{
+ ecore_main_loop_quit();
+ return (0);
+}
+
int
main(int argc, char **argv)
{
@@ -17,7 +24,7 @@
od_config_init();
ecore_app_args_set(argc, (const char **) argv);
-// ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, callback_exit, NULL);
+ ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, exit_cb, NULL);
ecore_evas_init();
edje_init();
edje_frametime_set(1.0 / 30.0);
@@ -35,7 +42,6 @@
ecore_idle_enterer_add(handle_idle, NULL);
ecore_main_loop_begin();
- fprintf(stderr, "cleanly shutting down\n");
edje_shutdown();
ecore_evas_shutdown();
ecore_config_save();
===================================================================
RCS file: /cvsroot/enlightenment/misc/engage/src/window.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- window.c 18 Apr 2004 01:12:58 -0000 1.10
+++ window.c 26 Apr 2004 03:46:58 -0000 1.11
@@ -13,13 +13,77 @@
Ecore_Evas *ee;
Evas *evas;
Ecore_X_Window od_window;
+static Ecore_Timer *mouse_focus_timer = NULL;
+static void handle_delete_request(Ecore_Evas * _ee);
+static void handle_pre_render_cb(Ecore_Evas * _ee);
+static void handle_post_render_cb(Ecore_Evas * _ee);
+static void handle_mouse_in(Ecore_Evas * _ee);
static void handle_mouse_out(Ecore_Evas * _ee);
+static void handle_focus_out(Ecore_Evas * _ee);
static void handle_mouse_down(void *data, Evas * e, Evas_Object * obj,
void *event);
static void handle_mouse_move(void *data, Evas * e, Evas_Object * obj,
void *event);
+int
+od_window_hide_timer_cb(void *data)
+{
+ if (mouse_focus_timer) {
+ if (dock.state == zooming || dock.state == zoomed) {
+ od_dock_zoom_out();
+ mouse_focus_timer = NULL;
+ return (0);
+ }
+ }
+ return (1);
+}
+static void
+handle_pre_render_cb(Ecore_Evas * _ee)
+{
+ edje_thaw();
+ od_dock_redraw(_ee);
+}
+static void
+handle_post_render_cb(Ecore_Evas * _ee)
+{
+ edje_freeze();
+}
+static void
+handle_delete_cb(Ecore_Evas * _ee)
+{
+ if (_ee != ee)
+ return;
+ ecore_main_loop_quit();
+}
+static void
+handle_focus_out(Ecore_Evas * _ee)
+{
+ if (_ee != ee)
+ return;
+ if (mouse_focus_timer)
+ ecore_timer_del(mouse_focus_timer);
+ mouse_focus_timer = ecore_timer_add(0.5, od_window_hide_timer_cb, NULL);
+}
+static void
+handle_mouse_in(Ecore_Evas * _ee)
+{
+ if (_ee != ee)
+ return;
+ if (mouse_focus_timer)
+ ecore_timer_del(mouse_focus_timer);
+ mouse_focus_timer = NULL;
+}
+static void
+handle_mouse_out(Ecore_Evas * _ee)
+{
+ if (_ee != ee)
+ return;
+ if (mouse_focus_timer)
+ ecore_timer_del(mouse_focus_timer);
+ mouse_focus_timer = ecore_timer_add(0.5, od_window_hide_timer_cb, NULL);
+}
+
void
od_window_move()
{
@@ -94,8 +158,12 @@
ecore_evas_shaped_set(ee, 1);
else
ecore_evas_shaped_set(ee, 0);
- ecore_evas_callback_pre_render_set(ee, od_dock_redraw);
+ ecore_evas_callback_post_render_set(ee, handle_post_render_cb);
+ ecore_evas_callback_pre_render_set(ee, handle_pre_render_cb);
+ ecore_evas_callback_delete_request_set(ee, handle_delete_cb);
ecore_evas_callback_mouse_out_set(ee, handle_mouse_out);
+ ecore_evas_callback_mouse_in_set(ee, handle_mouse_in);
+ ecore_evas_callback_focus_out_set(ee, handle_focus_out);
evas = ecore_evas_get(ee);
Evas_Object *eventer = evas_object_rectangle_add(evas);
@@ -153,15 +221,6 @@
}
static void
-handle_mouse_out(Ecore_Evas * _ee)
-{
- if (_ee != ee)
- return;
- if (dock.state == zooming || dock.state == zoomed)
- od_dock_zoom_out();
-}
-
-static void
handle_mouse_down(void *data, Evas * e, Evas_Object * obj, void *event)
{
Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *) event;
-------------------------------------------------------
This SF.net email is sponsored by: The Robotic Monkeys at ThinkGeek
For a limited time only, get FREE Ground shipping on all orders of $35
or more. Hurry up and shop folks, this offer expires April 30th!
http://www.thinkgeek.com/freeshipping/?cpg=12297
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs