Enlightenment CVS committal

Author  : atmosphere
Project : misc
Module  : engage

Dir     : misc/engage/src


Modified Files:
        config.c engage_element.c engage_element.h window.c 


Log Message:
flesh out more stuff, indent andy's code
===================================================================
RCS file: /cvsroot/enlightenment/misc/engage/src/config.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- config.c    10 May 2004 11:06:41 -0000      1.18
+++ config.c    13 May 2004 21:57:48 -0000      1.19
@@ -109,7 +109,7 @@
 }
 
 #ifdef HAVE_EWL
-int        menu_height, menu_width;
+int             menu_height, menu_width;
 
 void
 od_config_menu_move_cb(Ewl_Widget * w, void *ev_data, void *user_data)
@@ -127,7 +127,7 @@
 void
 od_config_menu_zoom_cb(Ewl_Widget * w, void *ev_data, void *user_data)
 {
-  ecore_config_int_set("engage.options.zoom", options.zoom?0:1);
+  ecore_config_int_set("engage.options.zoom", options.zoom ? 0 : 1);
   od_config_menu_hide();
 }
 
@@ -196,30 +196,30 @@
 {
   evas_object_move(embed, -1 * CURRENT_W(menu_win), 0);
   ewl_widget_hide(menu);
-  
+
 }
 
 void
 od_config_menu_draw(Evas_Coord x, Evas_Coord y)
 {
-  int xx, yy, menu_off_x, menu_off_y;
-  menu_off_x = 5; menu_off_y = 5;
-  
+  int             xx, yy, menu_off_x, menu_off_y;
+
+  menu_off_x = 5;
+  menu_off_y = 5;
+
   od_config_menu_init();
   if (x - menu_off_x + menu_width > options.width)
     xx = options.width - menu_width;
+  else if (x < menu_off_x)
+    xx = 0;
   else
-    if (x < menu_off_x)
-      xx = 0;
-    else
-      xx = x - menu_off_x;
+    xx = x - menu_off_x;
   if (y - menu_off_y + menu_height > options.height)
     yy = options.height - menu_height;
+  else if (y < menu_off_y)
+    yy = 0;
   else
-    if (y < menu_off_y)
-      yy = 0;
-    else
-      yy = y - menu_off_y;
+    yy = y - menu_off_y;
   evas_object_move(embed, xx, yy);
   ewl_callback_call(menu, EWL_CALLBACK_SELECT);
 }
===================================================================
RCS file: /cvsroot/enlightenment/misc/engage/src/engage_element.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- engage_element.c    12 May 2004 13:47:06 -0000      1.1
+++ engage_element.c    13 May 2004 21:57:48 -0000      1.2
@@ -1,13 +1,6 @@
+
 /**
- * smart template.  i stole this from rephorm and made it check the
- * data_get calls for some validity.
- *
- * $ cp evas_smart_template_atmos.c mysmartobj.c
- * $ perl -p -i -e 's/engage_element/my_smart_obj/g' mysmartobj.c
- * $ perl -p -i -e 's/Engage_Element/My_Smart_Obj/g' mysmartobj.c
- * There's example structs in the #if0 block you can easily copy to a
- * header(mysmartobj.h)
- *
+ * engage_element.c: something that lives in the engage bar
  */
 #include <Evas.h>
 #include <Edje.h>
@@ -15,124 +8,73 @@
 #include <stdio.h>
 #include <string.h>
 #include <limits.h>
+#include "engage_element.h"
 
-#if 0
-typedef struct _Engage_Element Engage_Element;
-
-struct _Engage_Element
-{
-    Evas_Object *clip;
-    Evas_Coord x, y, w, h;
-};
-#endif
+static Evas_Object *engage_element_icon_new(Evas * evas, const char *file,
+                                            const char *group);
+static Evas_Object *engage_element_behavior_new(Evas * evas, const char *file,
+                                                const char *group);
 
 /* smart object handlers */
-static Evas_Smart * _engage_element_object_smart_get();
-static Evas_Object * engage_element_object_new(Evas *evas);
-void _engage_element_object_add(Evas_Object *o);
-void _engage_element_object_del(Evas_Object *o);
-void _engage_element_object_layer_set(Evas_Object *o, int l);
-void _engage_element_object_raise(Evas_Object *o);
-void _engage_element_object_lower(Evas_Object *o);
-void _engage_element_object_stack_above(Evas_Object *o, Evas_Object *above);
-void _engage_element_object_stack_below(Evas_Object *o, Evas_Object *below);
-void _engage_element_object_move(Evas_Object *o, double x, double y);
-void _engage_element_object_resize(Evas_Object *o, double w, double h);
-void _engage_element_object_show(Evas_Object *o);
-void _engage_element_object_hide(Evas_Object *o);
-void _engage_element_object_color_set(Evas_Object *o, int r, int g, int b, int a);
-void _engage_element_object_clip_set(Evas_Object *o, Evas_Object *clip);
-void _engage_element_object_clip_unset(Evas_Object *o);
+static Evas_Smart *_engage_element_object_smart_get(void);
+static Evas_Object *engage_element_object_new(Evas * evas);
+void            _engage_element_object_add(Evas_Object * o);
+void            _engage_element_object_del(Evas_Object * o);
+void            _engage_element_object_layer_set(Evas_Object * o, int l);
+void            _engage_element_object_raise(Evas_Object * o);
+void            _engage_element_object_lower(Evas_Object * o);
+void            _engage_element_object_stack_above(Evas_Object * o,
+                                                   Evas_Object * above);
+void            _engage_element_object_stack_below(Evas_Object * o,
+                                                   Evas_Object * below);
+void            _engage_element_object_move(Evas_Object * o, Evas_Coord x,
+                                            Evas_Coord y);
+void            _engage_element_object_resize(Evas_Object * o, Evas_Coord w,
+                                              Evas_Coord h);
+void            _engage_element_object_show(Evas_Object * o);
+void            _engage_element_object_hide(Evas_Object * o);
+void            _engage_element_object_color_set(Evas_Object * o, int r, int g,
+                                                 int b, int a);
+void            _engage_element_object_clip_set(Evas_Object * o,
+                                                Evas_Object * clip);
+void            _engage_element_object_clip_unset(Evas_Object * o);
+
+
+Evas_Object    *
+engage_element_new(Evas * e, const char *bfile, const char *bgroup,
+                   const char *ifile, const char *igroup)
+{
+  char            buf[PATH_MAX];
+  int             w = 48, h = 48;
+  Evas_Object    *result = NULL;
+  Engage_Element *data = NULL;
 
-static Evas_Object *
-engage_element_behavior_new(Evas *evas, const char *file, const char *group)
-{
-    Evas_Object *result = NULL;
-    
-    if(file && group && file[0] == '/')
-    {
-       result = edje_object_add(evas);
-       if(edje_object_file_set(result, file, group) > 0)
-       {
-           evas_object_move(result, -60, -60);
-           evas_object_show(result);
-       }
-       else
-       {
-           evas_object_del(result);
-           result = NULL;
-       }
-    }
-    return(result);
-}
-static Evas_Object *
-engage_element_icon_new(Evas *evas, const char *file, const char *group)
-{
-    Evas_Object *result = NULL;
-    
-    /* edje */
-    if(group)
-    {
-       if(file && file[0] == '/')
-       {
-           result = edje_object_add(evas);
-           if(edje_object_file_set(result, file, group) > 0)
-           {
-               evas_object_move(result, -60, -60);
-               evas_object_show(result);
-           }
-       }
-       else
-       {
-           evas_object_del(result);
-           result = NULL;
-       }
-    }
-    /* image */
-    else
-    {
-    }
-    return(result);
-}
+  if ((result = engage_element_object_new(e))) {
+    if ((data = evas_object_smart_data_get(result))) {
+      data->clip = evas_object_rectangle_add(e);
+      evas_object_color_set(data->clip, 255, 255, 255, 255);
+      evas_object_layer_set(data->clip, 0);
+      evas_object_show(data->clip);
 
-Evas_Object*
-engage_element_new(Evas *e, const char *bfile, const char *bgroup,
-                           const char *ifile, const char *igroup)
-{
-  char buf[PATH_MAX];
-  int w = 48, h = 48;
-  Evas_Object *result = NULL;
-  Engage_Element *data = NULL;
- 
-  if((result = engage_element_object_new(e)))
-  {
-    if((data = evas_object_smart_data_get(result)))
-    {
-       data->clip = evas_object_rectangle_add(e);
-       evas_object_color_set(data->clip, 255, 255, 255, 255);
-       evas_object_layer_set(data->clip, 0);
-       evas_object_show(data->clip);
-
-       if((data->behavior = engage_element_behavior_new(e, bfile, bgroup)))
-       {
-           evas_object_clip_set(data->behavior, data->clip);
-           if((data->icon = engage_element_icon_new(e, ifile, igroup)))
-           {
-               evas_object_clip_set(data->icon, data->clip);
-           }
-           else
-           {
-               evas_object_del(data->behavior);
-               data->behavior = NULL;
-               evas_object_del(data->clip);
-               data->clip = NULL;
-               evas_object_del(result);
-               result = NULL;
-           }
-       }
+      if ((data->behavior = engage_element_behavior_new(e, bfile, bgroup))) {
+        evas_object_clip_set(data->behavior, data->clip);
+        if ((data->icon = engage_element_icon_new(e, ifile, igroup))) {
+          if (!strcmp(evas_object_type_get(data->icon), "image")) {
+            evas_object_image_size_get(data->icon, &data->iw, &data->ih);
+            evas_object_image_fill_set(data->icon, 0.0, 0.0,
+                                       (Evas_Coord) data->iw,
+                                       (Evas_Coord) data->ih);
+
+          }
+          evas_object_clip_set(data->icon, data->clip);
+        } else {
+          evas_object_del(result);
+          result = NULL;
+        }
+      }
     }
   }
-  return(result);
+  return (result);
 }
 
 
@@ -144,11 +86,12 @@
 /*** external API ***/
 
 static Evas_Object *
-engage_element_object_new(Evas *evas)
+engage_element_object_new(Evas * evas)
 {
-  Evas_Object *engage_element_object;
+  Evas_Object    *engage_element_object;
 
-  engage_element_object = evas_object_smart_add(evas, 
_engage_element_object_smart_get());
+  engage_element_object =
+    evas_object_smart_add(evas, _engage_element_object_smart_get());
 
   return engage_element_object;
 }
@@ -156,35 +99,36 @@
 /*** smart object handler functions ***/
 
 static Evas_Smart *
-_engage_element_object_smart_get()
+_engage_element_object_smart_get(void)
 {
-  Evas_Smart *smart = NULL;
-  smart = evas_smart_new ("engage_element_object",
-                          _engage_element_object_add,
-                          _engage_element_object_del,
-                          _engage_element_object_layer_set,
-                          _engage_element_object_raise,
-                          _engage_element_object_lower,
-                          _engage_element_object_stack_above,
-                          _engage_element_object_stack_below,
-                          _engage_element_object_move,
-                          _engage_element_object_resize,
-                          _engage_element_object_show,
-                          _engage_element_object_hide,
-                          _engage_element_object_color_set,
-                          _engage_element_object_clip_set,
-                          _engage_element_object_clip_unset,
-                          NULL
-                          );
+  static Evas_Smart *smart = NULL;
+
+  if (smart)
+    return (smart);
+  smart = evas_smart_new("engage_element_object",
+                         _engage_element_object_add,
+                         _engage_element_object_del,
+                         _engage_element_object_layer_set,
+                         _engage_element_object_raise,
+                         _engage_element_object_lower,
+                         _engage_element_object_stack_above,
+                         _engage_element_object_stack_below,
+                         _engage_element_object_move,
+                         _engage_element_object_resize,
+                         _engage_element_object_show,
+                         _engage_element_object_hide,
+                         _engage_element_object_color_set,
+                         _engage_element_object_clip_set,
+                         _engage_element_object_clip_unset, NULL);
 
-  return smart; 
+  return smart;
 }
 
 void
-_engage_element_object_add(Evas_Object *o)
+_engage_element_object_add(Evas_Object * o)
 {
   Engage_Element *data = NULL;
-    
+
   data = malloc(sizeof(Engage_Element));
   memset(data, 0, sizeof(Engage_Element));
   evas_object_smart_data_set(o, data);
@@ -192,152 +136,239 @@
 
 
 void
-_engage_element_object_del(Evas_Object *o)
+_engage_element_object_del(Evas_Object * o)
 {
   Engage_Element *data;
-  
-  if((data = evas_object_smart_data_get(o)))
-  {
+
+  if ((data = evas_object_smart_data_get(o))) {
+    if (data->clip)
+      evas_object_del(data->clip);
+    if (data->icon)
+      evas_object_del(data->icon);
+    if (data->behavior)
+      evas_object_del(data->behavior);
     free(data);
   }
 }
 
 void
-_engage_element_object_layer_set(Evas_Object *o, int l)
+_engage_element_object_layer_set(Evas_Object * o, int l)
 {
   Engage_Element *data;
-  
-  if((data = evas_object_smart_data_get(o)))
-  {
+
+  if ((data = evas_object_smart_data_get(o))) {
     evas_object_layer_set(data->clip, l);
+    evas_object_layer_set(data->icon, l);
+    evas_object_layer_set(data->behavior, l);
   }
 }
 
 void
-_engage_element_object_raise(Evas_Object *o)
+_engage_element_object_raise(Evas_Object * o)
 {
   Engage_Element *data;
-  
+
   data = evas_object_smart_data_get(o);
 
-  if((data = evas_object_smart_data_get(o)))
-  {
+  if ((data = evas_object_smart_data_get(o))) {
     evas_object_raise(data->clip);
+    evas_object_raise(data->icon);
+    evas_object_raise(data->behavior);
   }
 }
 
 void
-_engage_element_object_lower(Evas_Object *o)
+_engage_element_object_lower(Evas_Object * o)
 {
   Engage_Element *data;
-  
-  if((data = evas_object_smart_data_get(o)))
-  {
+
+  if ((data = evas_object_smart_data_get(o))) {
+    evas_object_lower(data->behavior);
+    evas_object_lower(data->icon);
     evas_object_lower(data->clip);
   }
 }
 
 void
-_engage_element_object_stack_above(Evas_Object *o, Evas_Object *above)
+_engage_element_object_stack_above(Evas_Object * o, Evas_Object * above)
 {
   Engage_Element *data;
-  
+
   data = evas_object_smart_data_get(o);
 
-  if((data = evas_object_smart_data_get(o)))
-  {
+  if ((data = evas_object_smart_data_get(o))) {
     evas_object_stack_above(data->clip, above);
+    evas_object_stack_above(data->icon, above);
+    evas_object_stack_above(data->behavior, above);
   }
 }
 
 void
-_engage_element_object_stack_below(Evas_Object *o, Evas_Object *below)
+_engage_element_object_stack_below(Evas_Object * o, Evas_Object * below)
 {
   Engage_Element *data;
-  
-  if((data = evas_object_smart_data_get(o)))
-  {
+
+  if ((data = evas_object_smart_data_get(o))) {
     evas_object_stack_below(data->clip, below);
+    evas_object_stack_below(data->icon, below);
+    evas_object_stack_below(data->behavior, below);
   }
 }
 
 void
-_engage_element_object_move(Evas_Object *o, double x, double y)
+_engage_element_object_move(Evas_Object * o, Evas_Coord x, Evas_Coord y)
 {
   Engage_Element *data;
-  
+
   data = evas_object_smart_data_get(o);
 
-  if((data = evas_object_smart_data_get(o)))
-  {
-    evas_object_move(data->clip, y, y);
+  if ((data = evas_object_smart_data_get(o))) {
+    data->x = x;
+    data->y = y;
+    evas_object_move(data->clip, x, y);
+    evas_object_move(data->icon, x, y);
+    evas_object_resize(data->icon, data->w, data->h);
   }
 }
 
 void
-_engage_element_object_resize(Evas_Object *o, double w, double h)
+_engage_element_object_resize(Evas_Object * o, Evas_Coord w, Evas_Coord h)
 {
+  double          fit = 0.0;
+  Evas_Coord      iw = w, ih = h;
   Engage_Element *data;
-  
-  data = evas_object_smart_data_get(o);
 
-  if((data = evas_object_smart_data_get(o)))
-  {
+  if ((data = evas_object_smart_data_get(o))) {
+    data->iw = w;
+    data->ih = h;
     evas_object_resize(data->clip, w, h);
+    evas_object_resize(data->behavior, w, h);
+    if (!strcmp(evas_object_type_get(data->icon), "image")) {
+      if (data->iw < data->ih)
+        iw =
+          (Evas_Coord) ((double) h * ((double) data->iw / (double) data->ih));
+      else
+        ih =
+          (Evas_Coord) ((double) w * ((double) data->ih / (double) data->iw));
+
+      evas_object_resize(data->icon, iw, ih);
+      evas_object_image_fill_set(data->icon, 0.0, 0.0, iw, ih);
+      evas_object_move(data->icon, data->x - ((iw - data->w) / 2),
+                       data->y - ((ih - data->h) / 2));
+    } else {
+      evas_object_resize(data->icon, w, h);
+    }
   }
 }
 
 void
-_engage_element_object_show(Evas_Object *o)
+_engage_element_object_show(Evas_Object * o)
 {
   Engage_Element *data;
-  
-  if((data = evas_object_smart_data_get(o)))
-  {
-      evas_object_show(data->clip);
+
+  if ((data = evas_object_smart_data_get(o))) {
+    evas_object_show(data->clip);
+    evas_object_show(data->icon);
+    evas_object_show(data->behavior);
   }
 }
 
 void
-_engage_element_object_hide(Evas_Object *o)
+_engage_element_object_hide(Evas_Object * o)
 {
   Engage_Element *data;
-  
-  if((data = evas_object_smart_data_get(o)))
-  {
+
+  if ((data = evas_object_smart_data_get(o))) {
     evas_object_hide(data->clip);
+    evas_object_hide(data->icon);
+    evas_object_hide(data->behavior);
   }
 }
 
 void
-_engage_element_object_color_set(Evas_Object *o, int r, int g, int b, int a)
+_engage_element_object_color_set(Evas_Object * o, int r, int g, int b, int a)
 {
   Engage_Element *data;
-  
-  if((data = evas_object_smart_data_get(o)))
-  {
+
+  if ((data = evas_object_smart_data_get(o))) {
     evas_object_color_set(data->clip, r, g, b, a);
   }
 }
 
 void
-_engage_element_object_clip_set(Evas_Object *o, Evas_Object *clip)
+_engage_element_object_clip_set(Evas_Object * o, Evas_Object * clip)
 {
   Engage_Element *data;
-  
-  if((data = evas_object_smart_data_get(o)))
-  {
+
+  if ((data = evas_object_smart_data_get(o))) {
     evas_object_clip_set(data->clip, clip);
   }
 }
 
 void
-_engage_element_object_clip_unset(Evas_Object *o)
+_engage_element_object_clip_unset(Evas_Object * o)
 {
   Engage_Element *data;
-  
-  if((data = evas_object_smart_data_get(o)))
-  {
+
+  if ((data = evas_object_smart_data_get(o))) {
     evas_object_clip_unset(data->clip);
   }
 }
+
+static Evas_Object *
+engage_element_behavior_new(Evas * evas, const char *file, const char *group)
+{
+  Evas_Object    *result = NULL;
+
+  if (file && group && file[0] == '/') {
+    result = edje_object_add(evas);
+    if (edje_object_file_set(result, file, group) > 0) {
+      evas_object_move(result, -9999, -9999);
+      evas_object_resize(result, 4, 4);
+    } else {
+      evas_object_del(result);
+      result = NULL;
+    }
+  }
+  return (result);
+}
+static Evas_Object *
+engage_element_icon_new(Evas * evas, const char *file, const char *group)
+{
+  int             iw, ih;
+  Evas_Object    *result = NULL;
+
+  /* edje */
+  if (group) {
+    if (file && file[0] == '/') {
+      result = edje_object_add(evas);
+      if (edje_object_file_set(result, file, group) > 0) {
+        evas_object_move(result, -9999, -9999);
+        evas_object_resize(result, 4, 4);
+      }
+    } else {
+      evas_object_del(result);
+      result = NULL;
+    }
+  }
+  /* image */
+  else {
+    if (file && file[0] == '/') {
+      result = evas_object_image_add(evas);
+      evas_object_image_file_set(result, file, NULL);
+      switch (evas_object_image_load_error_get(result)) {
+      case EVAS_LOAD_ERROR_NONE:
+        evas_object_move(result, -9999, -9999);
+        evas_object_resize(result, 4, 4);
+        break;
+      default:
+        evas_object_del(result);
+        result = NULL;
+      }
+    } else {
+      evas_object_del(result);
+      result = NULL;
+    }
+  }
+  return (result);
+}
===================================================================
RCS file: /cvsroot/enlightenment/misc/engage/src/engage_element.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- engage_element.h    12 May 2004 13:47:06 -0000      1.1
+++ engage_element.h    13 May 2004 21:57:48 -0000      1.2
@@ -1,14 +1,32 @@
+
+/**
+ * Something that lives in the engage bar.  There are two parts to this
+ * smart object that you should be concerned with
+ * behavior: an object to handle mouse interaction separate from representation
+ * icon: the image file or edje to represent this element visually
+ *
+ * Both objects are clipped to a single clip.
+ *
+ * Image icon files should retain aspect, other than that maintain properly
+ * layering etc for this object
+ *
+ */
+
 #ifndef ENGAGE_ELEMENT_H
 #define ENGAGE_ELEMENT_H
 
 typedef struct _Engage_Element Engage_Element;
 
-struct _Engage_Element
-{
-    Evas_Object *clip;
-    Evas_Object *icon;
-    Evas_Object *behavior;
-    Evas_Coord x, y, w, h;
+struct _Engage_Element {
+  Evas_Object    *clip;
+  Evas_Object    *icon;
+  Evas_Object    *behavior;
+  Evas_Coord      x, y, w, h;
+  int             iw, ih;
 };
 
+Evas_Object    *engage_element_new(Evas * evas, const char *bfile,
+                                   const char *bgroup, const char *ifile,
+                                   const char *igroup);
+
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/misc/engage/src/window.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- window.c    8 May 2004 17:45:57 -0000       1.16
+++ window.c    13 May 2004 21:57:48 -0000      1.17
@@ -307,4 +307,3 @@
     od_config_menu_draw(ev->canvas.x, ev->canvas.y);
 #endif
 }
-




-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to