Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_gadcon.c e_gadcon.h 


Log Message:


instant edit! werd! :)

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.c,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -3 -r1.102 -r1.103
--- e_gadcon.c  4 Mar 2008 13:33:18 -0000       1.102
+++ e_gadcon.c  5 Mar 2008 12:39:55 -0000       1.103
@@ -29,6 +29,10 @@
 static void _e_gadcon_cb_client_move(void *data, Evas *evas, Evas_Object *obj, 
void *event_info);
 static void _e_gadcon_cb_client_resize(void *data, Evas *evas, Evas_Object 
*obj, void *event_info);
 
+static void _e_gadcon_client_move_start(E_Gadcon_Client *gcc);
+static void _e_gadcon_client_move_stop(E_Gadcon_Client *gcc);
+static void _e_gadcon_client_move_go(E_Gadcon_Client *gcc);
+
 static void _e_gadcon_cb_signal_move_start(void *data, Evas_Object *obj, const 
char *emission, const char *source);
 static void _e_gadcon_cb_signal_move_stop(void *data, Evas_Object *obj, const 
char *emission, const char *source);
 static void _e_gadcon_cb_signal_move_go(void *data, Evas_Object *obj, const 
char *emission, const char *source);
@@ -47,6 +51,8 @@
 static int _e_gadcon_client_class_feature_check(E_Gadcon_Client_Class *cc, 
const char *name, void *feature);
 static void _e_gadcon_client_cb_menu_post(void *data, E_Menu *m);
 static void _e_gadcon_client_cb_mouse_down(void *data, Evas *e, Evas_Object 
*obj, void *event_info);
+static void _e_gadcon_client_cb_mouse_up(void *data, Evas *e, Evas_Object 
*obj, void *event_info);
+static void _e_gadcon_client_cb_mouse_move(void *data, Evas *e, Evas_Object 
*obj, void *event_info);
 static void _e_gadcon_client_cb_menu_style_plain(void *data, E_Menu *m, 
E_Menu_Item *mi);
 static void _e_gadcon_client_cb_menu_style_inset(void *data, E_Menu *m, 
E_Menu_Item *mi);
 static void _e_gadcon_client_cb_menu_autoscroll(void *data, E_Menu *m, 
E_Menu_Item *mi);
@@ -414,6 +420,8 @@
 
                  _e_gadcon_client_save(gcc);
                  if (gc->editing) e_gadcon_client_edit_begin(gcc);
+                 if (gc->instant_edit)
+                   e_gadcon_client_util_menu_attach(gcc);
               }
          }
      }
@@ -481,6 +489,8 @@
 
                  _e_gadcon_client_save(gcc);
                  if (gc->editing) e_gadcon_client_edit_begin(gcc);
+                 if (gc->instant_edit)
+                   e_gadcon_client_util_menu_attach(gcc);
               }
          }
      }
@@ -1248,9 +1258,17 @@
    E_OBJECT_CHECK(gcc);
    E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE);
    if (gcc->o_frame)
-     evas_object_event_callback_add(gcc->o_frame, EVAS_CALLBACK_MOUSE_DOWN, 
_e_gadcon_client_cb_mouse_down, gcc);
+     {
+       evas_object_event_callback_add(gcc->o_frame, EVAS_CALLBACK_MOUSE_DOWN, 
_e_gadcon_client_cb_mouse_down, gcc);
+       evas_object_event_callback_add(gcc->o_frame, EVAS_CALLBACK_MOUSE_UP, 
_e_gadcon_client_cb_mouse_up, gcc);
+       evas_object_event_callback_add(gcc->o_frame, EVAS_CALLBACK_MOUSE_MOVE, 
_e_gadcon_client_cb_mouse_move, gcc);
+     }
    else if (gcc->o_base)
-     evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_MOUSE_DOWN, 
_e_gadcon_client_cb_mouse_down, gcc);
+     {
+       evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_MOUSE_DOWN, 
_e_gadcon_client_cb_mouse_down, gcc);
+       evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_MOUSE_UP, 
_e_gadcon_client_cb_mouse_up, gcc);
+       evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_MOUSE_MOVE, 
_e_gadcon_client_cb_mouse_move, gcc);
+     }
 }
 
 /*
@@ -1702,11 +1720,8 @@
 }
 
 static void
-_e_gadcon_cb_signal_move_start(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+_e_gadcon_client_move_start(E_Gadcon_Client *gcc)
 {
-   E_Gadcon_Client *gcc;
-   
-   gcc = data;
    evas_object_raise(gcc->o_event);
    evas_object_stack_below(gcc->o_control, gcc->o_event);
    gcc->moving = 1;
@@ -1717,11 +1732,8 @@
 }
 
 static void
-_e_gadcon_cb_signal_move_stop(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+_e_gadcon_client_move_stop(E_Gadcon_Client *gcc)
 {
-   E_Gadcon_Client *gcc;
-   
-   gcc = data;
    gcc->moving = 0; 
    
    gcc->state_info.state = E_LAYOUT_ITEM_STATE_NONE;
@@ -1730,13 +1742,11 @@
 }
 
 static void
-_e_gadcon_cb_signal_move_go(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+_e_gadcon_client_move_go(E_Gadcon_Client *gcc)
 {
-   E_Gadcon_Client *gcc;
    Evas_Coord x, y, w, h;
    int        cx, cy;
    
-   gcc = data;
    if (!gcc->moving) return;
    evas_pointer_canvas_xy_get(gcc->gadcon->evas, &cx, &cy);
    x = cx - gcc->dx;
@@ -1818,6 +1828,24 @@
 }
 
 static void
+_e_gadcon_cb_signal_move_start(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   _e_gadcon_client_move_start(data);
+}
+
+static void
+_e_gadcon_cb_signal_move_stop(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   _e_gadcon_client_move_stop(data);
+}
+
+static void
+_e_gadcon_cb_signal_move_go(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   _e_gadcon_client_move_go(data);
+}
+
+static void
 _e_gadcon_client_resize_start(E_Gadcon_Client *gcc)
 {
    evas_object_raise(gcc->o_event);
@@ -2076,6 +2104,8 @@
                  if (new_gcc->client_class->func.orient)
                    new_gcc->client_class->func.orient(new_gcc);
                  new_gcc->state_info.resist = 1;
+                 if (gc->instant_edit)
+                   e_gadcon_client_util_menu_attach(new_gcc);
               }
          }
      }
@@ -2229,6 +2259,51 @@
                              E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
        e_util_evas_fake_mouse_up_later(gcc->gadcon->evas,
                                        ev->button);
+     }
+   else if (ev->button == 1)
+     {
+       if ((!gcc->o_control) && (gcc->gadcon->instant_edit))
+         {
+            printf("EDIT\n");
+            e_gadcon_client_edit_begin(gcc);
+            _e_gadcon_client_move_start(gcc);
+         }
+     }
+}
+
+static void
+_e_gadcon_client_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void 
*event_info)
+{
+   Evas_Event_Mouse_Up *ev;
+   E_Gadcon_Client *gcc;
+   
+   ev = event_info;
+   gcc = data;
+   
+   if ((ev->button == 1) && (gcc->gadcon->instant_edit))
+     {
+       if (gcc->o_control)
+         {
+            printf("EDIT END\n");
+            _e_gadcon_client_move_stop(gcc);
+            e_gadcon_client_edit_end(gcc);
+         }
+     }
+}
+
+static void
+_e_gadcon_client_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void 
*event_info)
+{
+   Evas_Event_Mouse_Move *ev;
+   E_Gadcon_Client *gcc;
+   
+   ev = event_info;
+   gcc = data;
+   
+   if ((gcc->gadcon->instant_edit))
+     {
+       if (gcc->o_control)
+         _e_gadcon_client_move_go(gcc);
      }
 }
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.h,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -3 -r1.44 -r1.45
--- e_gadcon.h  13 Feb 2008 04:51:01 -0000      1.44
+++ e_gadcon.h  5 Mar 2008 12:39:55 -0000       1.45
@@ -93,6 +93,8 @@
    E_Drop_Handler *drop_handler;
 
    E_Config_Gadcon *cf;
+
+   unsigned char          instant_edit : 1;
 };
 
 #define GADCON_CLIENT_CLASS_VERSION 2



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to