Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_gadman.c 


Log Message:


gadman uses xy ints AT a res.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_gadman.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -3 -r1.35 -r1.36
--- e_gadman.c  11 May 2005 13:13:43 -0000      1.35
+++ e_gadman.c  19 May 2005 02:46:50 -0000      1.36
@@ -13,7 +13,10 @@
 
 struct _Gadman_Client_Config
 {
-   double ax, ay;
+//   double ax, ay;
+   struct {
+      int x, y, w, h;
+   } pos;
    int w, h;
    int edge;
    int zone;
@@ -78,8 +81,12 @@
 #undef D
 #define T Gadman_Client_Config
 #define D gadman_config_edd
-   E_CONFIG_VAL(D, T, ax, DOUBLE);
-   E_CONFIG_VAL(D, T, ay, DOUBLE);
+//   E_CONFIG_VAL(D, T, ax, DOUBLE);
+//   E_CONFIG_VAL(D, T, ay, DOUBLE);
+   E_CONFIG_VAL(D, T, pos.x, INT);
+   E_CONFIG_VAL(D, T, pos.y, INT);
+   E_CONFIG_VAL(D, T, pos.w, INT);
+   E_CONFIG_VAL(D, T, pos.h, INT);
    E_CONFIG_VAL(D, T, w, INT);
    E_CONFIG_VAL(D, T, h, INT);
    E_CONFIG_VAL(D, T, edge, INT);
@@ -201,8 +208,10 @@
    E_OBJECT_CHECK(gmc);
    E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE);
    /* save all values */
-   cf.ax = gmc->ax;
-   cf.ay = gmc->ay;
+   cf.pos.x = gmc->x - gmc->zone->x;
+   cf.pos.y = gmc->y - gmc->zone->y;
+   cf.pos.w = gmc->zone->w;
+   cf.pos.h = gmc->zone->h;
    cf.w = gmc->w;
    cf.h = gmc->h;
    cf.edge = gmc->edge;
@@ -227,13 +236,21 @@
      {
        E_Zone *zone;
        
-       E_CONFIG_LIMIT(cf->ax, 0.0, 1.0);
-       E_CONFIG_LIMIT(cf->ay, 0.0, 1.0);
+       E_CONFIG_LIMIT(cf->pos.x, 0, 10000);
+       E_CONFIG_LIMIT(cf->pos.y, 0, 10000);
+       E_CONFIG_LIMIT(cf->pos.w, 1, 10000);
+       E_CONFIG_LIMIT(cf->pos.h, 1, 10000);
        E_CONFIG_LIMIT(cf->w, 0, 10000);
        E_CONFIG_LIMIT(cf->h, 0, 10000);
        E_CONFIG_LIMIT(cf->edge, E_GADMAN_EDGE_LEFT, E_GADMAN_EDGE_BOTTOM);
-       gmc->ax = cf->ax;
-       gmc->ay = cf->ay;
+       if (cf->pos.w != cf->w)
+         gmc->ax = (double)(cf->pos.x - cf->w) / (double)(cf->pos.w - cf->w);
+       else
+         gmc->ax = 0.0;
+       if (cf->pos.h != cf->h)
+         gmc->ay = (double)(cf->pos.y - cf->h) / (double)(cf->pos.h - cf->h);
+       else
+         gmc->ay = 0.0;
        gmc->w = cf->w;
        gmc->h = cf->h;
        gmc->edge = cf->edge;
@@ -253,8 +270,16 @@
          }
        if (gmc->w > gmc->zone->w) gmc->w = gmc->zone->w;
        if (gmc->h > gmc->zone->h) gmc->h = gmc->zone->h;
-       gmc->x = gmc->zone->x + ((gmc->zone->w - gmc->w) * gmc->ax);
-       gmc->y = gmc->zone->y + ((gmc->zone->h - gmc->h) * gmc->ay);
+//     gmc->x = gmc->zone->x + ((gmc->zone->w - gmc->w) * gmc->ax);
+//     gmc->y = gmc->zone->y + ((gmc->zone->h - gmc->h) * gmc->ay);
+       if (cf->pos.w != cf->w)
+         gmc->x = gmc->zone->x + ((cf->pos.x * (gmc->zone->w - gmc->w)) / 
(cf->pos.w - gmc->w));
+       else
+         gmc->x = gmc->zone->x;
+       if (cf->pos.h != cf->h)
+         gmc->y = gmc->zone->y + ((cf->pos.y * (gmc->zone->h - gmc->h)) / 
(cf->pos.h - gmc->h));
+       else
+         gmc->y = gmc->zone->y;
        free(cf);
      }
    _e_gadman_client_overlap_deny(gmc);




-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to