Enlightenment CVS committal

Author  : titan
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_widget_scrollframe.c e_widget_scrollframe.h 


Log Message:
Add a new api for a simple scrollframe that manages pans size on its own.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_scrollframe.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_widget_scrollframe.c      28 Jul 2006 11:36:10 -0000      1.3
+++ e_widget_scrollframe.c      12 Aug 2006 21:53:26 -0000      1.4
@@ -12,9 +12,42 @@
 static void _e_wid_del_hook(Evas_Object *obj);
 static void _e_wid_focus_hook(Evas_Object *obj);
 static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
-
+static void _e_wid_cb_scrollframe_resize(void *data, Evas *e, Evas_Object *obj,
+void *event_info);
 /* externally accessible functions */
 EAPI Evas_Object *
+e_widget_scrollframe_simple_add(Evas *evas, Evas_Object *child)
+{
+   E_Widget_Data *wd;
+   Evas_Object *obj, *o;
+
+   obj = e_widget_add(evas);
+   
+   e_widget_del_hook_set(obj, _e_wid_del_hook);
+   e_widget_focus_hook_set(obj, _e_wid_focus_hook);
+   wd = calloc(1, sizeof(wd));
+   e_widget_data_set(obj, wd);
+
+   o = e_scrollframe_add(evas);
+   e_scrollframe_policy_set(o, E_SCROLLFRAME_POLICY_AUTO, 
+                              E_SCROLLFRAME_POLICY_AUTO);
+   wd->o_scrollframe = o;
+   evas_object_show(o);
+   e_widget_sub_object_add(obj, o);
+   e_widget_resize_object_set(obj, o);
+   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, 
_e_wid_focus_steal, obj);
+
+   e_scrollframe_child_set(wd->o_scrollframe, child);
+   evas_object_show(child);
+   wd->o_child = child;
+   e_widget_sub_object_add(obj, child);
+   evas_object_event_callback_add(wd->o_scrollframe, EVAS_CALLBACK_RESIZE, 
+                                 _e_wid_cb_scrollframe_resize, wd->o_child);
+
+   return wd->o_scrollframe;
+}
+
+EAPI Evas_Object *
 e_widget_scrollframe_pan_add(Evas *evas, Evas_Object *pan, void (*pan_set) 
(Evas_Object *obj, Evas_Coord x, Evas_Coord y), void (*pan_get) (Evas_Object 
*obj, Evas_Coord *x, Evas_Coord *y), void (*pan_max_get) (Evas_Object *obj, 
Evas_Coord *x, Evas_Coord *y), void (*pan_child_size_get) (Evas_Object *obj, 
Evas_Coord *x, Evas_Coord *y))
 {
    Evas_Object *obj, *o;
@@ -101,3 +134,18 @@
 {
    e_widget_focus_steal(data);
 }
+
+static void
+_e_wid_cb_scrollframe_resize(void *data, Evas *e, Evas_Object *obj, void 
*event_info)
+{
+    Evas_Coord mw, mh, vw, vh, w, h;    
+
+    e_scrollframe_child_viewport_size_get(obj, &vw, &vh);
+    e_widget_min_size_get(data, &mw, &mh);
+    evas_object_geometry_get(data, NULL, NULL, &w, &h);
+    if (vw >= mw)
+    {
+       if (w != vw) evas_object_resize(data, vw, h);
+    }
+}
+
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_scrollframe.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_widget_scrollframe.h      22 Jul 2006 21:48:24 -0000      1.2
+++ e_widget_scrollframe.h      12 Aug 2006 21:53:26 -0000      1.3
@@ -7,6 +7,7 @@
 #define E_WIDGET_SCROLLFRAME_H
 
 EAPI Evas_Object *e_widget_scrollframe_pan_add(Evas *evas, Evas_Object *pan, 
void (*pan_set) (Evas_Object *obj, Evas_Coord x, Evas_Coord y), void (*pan_get) 
(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y), void (*pan_max_get) 
(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y), void (*pan_child_size_get) 
(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y));
+EAPI Evas_Object *e_widget_scrollframe_simple_add(Evas *evas, Evas_Object 
*child);
 EAPI void e_widget_scrollframe_child_pos_set(Evas_Object *obj, Evas_Coord x, 
Evas_Coord y);
 EAPI void e_widget_scrollframe_child_pos_get(Evas_Object *obj, Evas_Coord *x, 
Evas_Coord *y);
 EAPI void e_widget_scrollframe_child_region_show(Evas_Object *obj, Evas_Coord 
x, Evas_Coord y, Evas_Coord w, Evas_Coord h);



-------------------------------------------------------------------------
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