Author: jmorliaguet
Date: Mon Jan  2 18:30:30 2006
New Revision: 2119

Modified:
   cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js
Log:

- added a fitInsideScreen  function



Modified: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js
==============================================================================
--- cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js (original)
+++ cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js Mon Jan  2 
18:30:30 2006
@@ -203,6 +203,33 @@
     } else {
       element.style.opacity = opacity;
     }
+  },
+
+  moveTo: function(element, x, y) {
+    var element = $(element);
+    Position.absolutize(element);
+    element.style.left = x + "px";
+    element.style.top = y + "px";
+  },
+
+  fitInsideScreen: function(element) {
+    var element = $(element);
+    Position.absolutize(element);
+    var dimensions = Element.getDimensions(element);
+    var width = dimensions.width;
+    var height = dimensions.height;
+    var page_w = window.innerWidth || document.body.clientWidth;
+    var page_h = window.innerHeight || document.body.clientHeight;
+    var top = element.style.top;
+    var left = element.style.left;
+    if (top) {
+      top = parseInt(top);
+      if (top + height > page_h) { element.style.top = top - height + "px"};
+    }
+    if (left) {
+      left = parseInt(left);
+      if (left + width > page_w) { element.style.left = left - width + "px"};
+    }
   }
 
 });
@@ -352,16 +379,8 @@
     var widget = this.widget;
     var view = this.view;
     // Display the menu inside the screen
-    var dimensions = Element.getDimensions(widget);
-    var menuWidth = dimensions.width;
-    var menuHeight = dimensions.height;
-    var page_w = window.innerWidth || document.body.clientWidth;
-    var page_h = window.innerHeight || document.body.clientHeight;
-    var menuX = (x + menuWidth > page_w) ? x - menuWidth -1 : x + 1;
-    var menuY = (y + menuHeight > page_h) ? y - menuHeight -1 : y + 1;
-    // menu position
-    widget.style.left = menuX + "px";
-    widget.style.top =  menuY + "px";
+    Canvas.moveTo(widget, x, y);
+    Canvas.fitInsideScreen(widget);
     // submenu relative position
     this.submenuLeft = Element.getDimensions(this.widget).width -2;
 
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to