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

Reply via email to