Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : proto

Dir     : e17/proto/etk/src/lib


Modified Files:
        etk_tooltips.c etk_window.c etk_window.h 


Log Message:
- some modal / transient code (not done!!)
- no more ecore_x for tooltips


===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_tooltips.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- etk_tooltips.c      16 Mar 2006 10:46:00 -0000      1.7
+++ etk_tooltips.c      3 Jul 2006 17:22:25 -0000       1.8
@@ -188,11 +188,14 @@
  */
 void etk_tooltips_pop_up(Etk_Widget *widget)
 {
-#if HAVE_ECORE_X   
    const char *text = NULL;
    int x, y;
    char *key;
-
+   Etk_Toplevel_Widget *toplevel;
+   Evas *evas;
+   int pt_x, pt_y;
+   int win_x, win_y;
+   
    if(!ETK_IS_OBJECT(widget))
      return;
    
@@ -215,12 +218,19 @@
      }
    
    etk_label_set(ETK_LABEL(_etk_tooltips_label), text);   
-   ecore_x_pointer_xy_get(ecore_x_window_root_first_get(), &x, &y);
+       
+   evas = etk_widget_toplevel_evas_get(widget);
+   evas_pointer_canvas_xy_get(evas, &pt_x, &pt_y);
+   toplevel = etk_widget_toplevel_parent_get(widget);
+   etk_window_geometry_get(ETK_WINDOW(toplevel), &win_x, &win_y, NULL, NULL);
+   x = pt_x + win_x;
+   y = pt_y + win_y;      
+   
    /* TODO: if tooltip window is outside screen, fix its place */
    etk_window_move(ETK_WINDOW(_etk_tooltips_window), x + 5, y + 5);
    etk_widget_show_all(_etk_tooltips_window);
    free(key);
-#endif  
+
    _etk_tooltips_timer = NULL;
 }
 
@@ -240,13 +250,11 @@
 /* Callback for when the mouse enters a widget */
 static void _etk_tooltips_mouse_in_cb(Etk_Object *object, 
Etk_Event_Mouse_In_Out *event, void *data)
 {
-#if HAVE_ECORE_X
    if(!_etk_tooltips_enabled || !ETK_IS_OBJECT(object))
      return;
 
    _etk_tooltips_cur_object = object;
    _etk_tooltips_timer = ecore_timer_add(_etk_tooltips_delay, 
_etk_tooltips_timer_cb, NULL);
-#endif   
 }
 
 /* Timer callback, pops up the tooltip */
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_window.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -3 -r1.22 -r1.23
--- etk_window.c        25 Jun 2006 02:22:04 -0000      1.22
+++ etk_window.c        3 Jul 2006 17:22:25 -0000       1.23
@@ -291,6 +291,40 @@
 }
 
 /**
+ * @brief Makes a window modal for another window
+ * @param window_to_modal the window to make modal
+ * @param window the window on which @a window_to_model will modal'ed on
+ */
+void etk_window_modal_for_window(Etk_Window *window_to_modal, Etk_Window 
*window)
+{
+   int x, y, w, h;
+   int cw, ch;
+   
+   if (!window_to_modal)
+      return;
+   
+   if (window_to_modal->wait_size_request)
+   {
+      window_to_modal->modal = ETK_TRUE;
+      window_to_modal->modal_for_window = window;
+      if (window)
+         etk_object_weak_pointer_add(ETK_OBJECT(window), (void 
**)(&window_to_modal->modal_for_window));
+   }
+   else
+   {
+      if (window)
+      {
+        Ecore_X_Window_State states[] = {ECORE_X_WINDOW_STATE_MODAL};
+        
+        ecore_x_icccm_transient_for_set(window_to_modal->x_window,
+                                        window->x_window);
+        
+        ecore_x_netwm_window_state_set(window_to_modal->x_window, states, 1);
+      }
+   }
+}
+
+/**
  * @brief Iconifies (i.e. minimize) the window
  * @param window a window
  */
@@ -695,6 +729,8 @@
    window->wait_size_request = ETK_TRUE;
    window->center = ETK_FALSE;
    window->center_on_window = NULL;
+   window->modal = ETK_FALSE;
+   window->modal_for_window = NULL;   
    
    ecore_x_dnd_aware_set(window->x_window, 1);
    
@@ -727,6 +763,8 @@
    ecore_evas_free(window->ecore_evas);
    if (window->center_on_window)
       etk_object_weak_pointer_remove(ETK_OBJECT(window->center_on_window), 
(void **)(&window->center_on_window));
+   if (window->modal_for_window)
+      etk_object_weak_pointer_remove(ETK_OBJECT(window->modal_for_window), 
(void **)(&window->modal_for_window));
 }
 
 /* Sets the property whose id is "property_id" to the value "value" */
@@ -933,6 +971,12 @@
             window->center = ETK_FALSE;
             window->center_on_window = NULL;
          }
+         if (window->modal)
+         {
+            etk_window_modal_for_window(window, window->modal_for_window);
+            window->modal = ETK_FALSE;
+            window->modal_for_window = NULL;
+         }      
       }
    }
 }
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_window.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- etk_window.h        7 Apr 2006 15:36:11 -0000       1.10
+++ etk_window.h        3 Jul 2006 17:22:25 -0000       1.11
@@ -40,6 +40,8 @@
    Etk_Bool wait_size_request;
    Etk_Bool center;
    Etk_Window *center_on_window;
+   Etk_Bool modal;
+   Etk_Window *modal_for_window;   
 };
 
 Etk_Type *etk_window_type_get();



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

Reply via email to