princeamd pushed a commit to branch enlightenment-0.17.

commit d94e7960500575a0c8eb397d3cb8ba5b6688d74e
Author: Christopher Michael <[email protected]>
Date:   Tue Feb 19 10:57:55 2013 +0000

    Backport: 7abc8a7 :: Add flag for rotating to structure. Add & delete 
callbacks for rotation start & stop. Add functions for rotate start & stop. Add 
start of rotate event code.
    
    Signed-off-by: Christopher Michael <[email protected]>
    
    SVN revision: 84174
    Signed-off-by: Deon Thomas <[email protected]>
---
 src/modules/conf_randr/e_smart_monitor.c | 68 ++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

diff --git a/src/modules/conf_randr/e_smart_monitor.c 
b/src/modules/conf_randr/e_smart_monitor.c
index 1943ec4..80f77fd 100644
--- a/src/modules/conf_randr/e_smart_monitor.c
+++ b/src/modules/conf_randr/e_smart_monitor.c
@@ -26,6 +26,7 @@ struct _E_Smart_Data
         Evas_Coord x, y, w, h;
      } grid;
 
+   /* virtual size of the grid */
    Evas_Coord vw, vh;
 
    /* test object */
@@ -72,6 +73,9 @@ struct _E_Smart_Data
 
    /* coordinates where the user clicked to start resizing */
    Evas_Coord rx, ry;
+
+   /* rotating flag */
+   Eina_Bool rotating : 1;
 };
 
 /* smart function prototypes */
@@ -113,8 +117,11 @@ static void _e_smart_monitor_frame_cb_indicator_out(void 
*data EINA_UNUSED, Evas
 
 static void _e_smart_monitor_frame_cb_resize_start(void *data, Evas_Object 
*obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *source 
EINA_UNUSED);
 static void _e_smart_monitor_frame_cb_resize_stop(void *data, Evas_Object *obj 
EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED);
+static void _e_smart_monitor_frame_cb_rotate_start(void *data, Evas_Object 
*obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *source 
EINA_UNUSED);
+static void _e_smart_monitor_frame_cb_rotate_stop(void *data, Evas_Object *obj 
EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED);
 
 static void _e_smart_monitor_resize_event(E_Smart_Data *sd, Evas_Object *mon, 
void *event);
+static void _e_smart_monitor_rotate_event(E_Smart_Data *sd, Evas_Object *mon, 
void *event);
 
 /* external functions exposed by this widget */
 Evas_Object *
@@ -340,6 +347,10 @@ _e_smart_add(Evas_Object *obj)
                                    _e_smart_monitor_frame_cb_resize_start, 
obj);
    edje_object_signal_callback_add(sd->o_frame, "e,action,resize,stop", "e", 
                                    _e_smart_monitor_frame_cb_resize_stop, obj);
+   edje_object_signal_callback_add(sd->o_frame, "e,action,rotate,start", "e", 
+                                   _e_smart_monitor_frame_cb_rotate_start, 
obj);
+   edje_object_signal_callback_add(sd->o_frame, "e,action,rotate,stop", "e", 
+                                   _e_smart_monitor_frame_cb_rotate_stop, obj);
 
    /* create the stand */
    sd->o_stand = edje_object_add(sd->evas);
@@ -425,6 +436,10 @@ _e_smart_del(Evas_Object *obj)
                                         
_e_smart_monitor_frame_cb_resize_start);
         edje_object_signal_callback_del(sd->o_frame, "e,action,resize,stop", 
"e", 
                                         _e_smart_monitor_frame_cb_resize_stop);
+        edje_object_signal_callback_del(sd->o_frame, "e,action,rotate,start", 
"e", 
+                                        
_e_smart_monitor_frame_cb_rotate_start);
+        edje_object_signal_callback_del(sd->o_frame, "e,action,rotate,stop", 
"e", 
+                                        _e_smart_monitor_frame_cb_rotate_stop);
 
         /* delete the object */
         evas_object_del(sd->o_frame);
@@ -851,6 +866,7 @@ _e_smart_monitor_frame_cb_mouse_move(void *data, Evas *evas 
EINA_UNUSED, Evas_Ob
 
    /* call appropriate function based on current action */
    if (sd->resizing) _e_smart_monitor_resize_event(sd, mon, event);
+   if (sd->rotating) _e_smart_monitor_rotate_event(sd, mon, event);
 }
 
 static void 
@@ -953,6 +969,48 @@ _e_smart_monitor_frame_cb_resize_stop(void *data, 
Evas_Object *obj EINA_UNUSED,
 }
 
 static void 
+_e_smart_monitor_frame_cb_rotate_start(void *data, Evas_Object *obj 
EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
+{
+   Evas_Object *mon;
+   E_Smart_Data *sd;
+
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+   /* try to get the monitor object */
+   if (!(mon = data)) return;
+
+   /* try to get the monitor smart data */
+   if (!(sd = evas_object_smart_data_get(mon))) return;
+
+   /* record current size of monitor */
+   /* evas_object_grid_pack_get(sd->grid.obj, mon, NULL, NULL, &sd->cw, 
&sd->ch); */
+
+   /* set resizing flag */
+   sd->rotating = EINA_TRUE;
+}
+
+static void 
+_e_smart_monitor_frame_cb_rotate_stop(void *data, Evas_Object *obj 
EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
+{
+   Evas_Object *mon;
+   E_Smart_Data *sd;
+
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+   /* try to get the monitor object */
+   if (!(mon = data)) return;
+
+   /* try to get the monitor smart data */
+   if (!(sd = evas_object_smart_data_get(mon))) return;
+
+   /* record current size of monitor */
+   /* evas_object_grid_pack_get(sd->grid.obj, mon, NULL, NULL, &sd->cw, 
&sd->ch); */
+
+   /* set resizing flag */
+   sd->rotating = EINA_FALSE;
+}
+
+static void 
 _e_smart_monitor_resize_event(E_Smart_Data *sd, Evas_Object *mon, void *event)
 {
    Evas_Event_Mouse_Move *ev;
@@ -1010,3 +1068,13 @@ _e_smart_monitor_resize_event(E_Smart_Data *sd, 
Evas_Object *mon, void *event)
         _e_smart_monitor_resolution_set(sd, mode->width, mode->height);
      }
 }
+
+static void 
+_e_smart_monitor_rotate_event(E_Smart_Data *sd, Evas_Object *mon, void *event)
+{
+   Evas_Event_Mouse_Move *ev;
+
+//   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+   ev = event;
+}

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev

Reply via email to