--- /dev/null
+#ifndef _JDISP_GUI_FLOATING_JSH\r
+#define _JDISP_GUI_FLOATING_JSH\r
+\r
+OOP_CLASS(Floating) = function()\r
+{\r
+ this.nodes = [];\r
+\r
+ var me = this;\r
+ var f = function () {\r
+ me.adjustComponents();\r
+ };\r
+ PROJECT_PREFIX.domUtils.setScrollHandler(f);\r
+ PROJECT_PREFIX.domUtils.setResizeHandler(f);\r
+ f();\r
+};\r
+OOP_FIELD(Floating, nodes) = null;\r
+\r
+OOP_METHOD(Floating, add) = function (node)\r
+{\r
+ var n = PROJECT_PREFIX.domUtils.getNode(node);\r
+ if (IS_NON_NULL_OBJECT(n)) {\r
+ this.nodes.push(n);\r
+ this.adjustComponent(n);\r
+ }\r
+};\r
+OOP_METHOD(Floating, remove) = function (node)\r
+{\r
+ var n = PROJECT_PREFIX.domUtils.getNode(node);\r
+\r
+ for (var i in this.nodes) {\r
+ if (n === this.nodes[i]) {\r
+ delete this.nodes[i];\r
+ }\r
+ }\r
+};\r
+\r
+OOP_METHOD(Floating, adjustComponents) = function ()\r
+{\r
+ for (var i in this.nodes) {\r
+ var n = this.nodes[i];\r
+ this.adjustComponent(n);\r
+ }\r
+};\r
+\r
+OOP_METHOD(Floating, adjustComponent) = function (node)\r
+{\r
+ var util = PROJECT_PREFIX.domUtils;\r
+ var n = util.getNode(node);\r
+ if (!IS_NON_NULL_OBJECT(n)) return;\r
+ n.style.position = 'absolute';\r
+ var es = util.getElementSize(n);\r
+ var pos = util.getScrollPosition();\r
+ var cs = util.getClientSize();\r
+ var ss = util.getScrollSize();\r
+ var x = cs.width + pos.x - n.offsetWidth;\r
+ var y = cs.height + pos.y - n.offsetHeight;\r
+ LOG_DEBUG\r
+ ( 'adjustComponent: '\r
+ + ' es=' + PROJECT_PREFIX.stringUtils.formatDimension(es)\r
+ + ' es=' + PROJECT_PREFIX.global.dumpVar(es)\r
+ + ',pos=' + PROJECT_PREFIX.stringUtils.formatPoint(pos)\r
+ + ',cs(b)=' + PROJECT_PREFIX.stringUtils.formatDimension(util.getClientSizeByBody())\r
+ + ',cs(de)=' + PROJECT_PREFIX.stringUtils.formatDimension(util.getClientSizeByDocument())\r
+ + ',cs=' + PROJECT_PREFIX.stringUtils.formatDimension(cs)\r
+ + ',ss(b)=' + PROJECT_PREFIX.stringUtils.formatDimension(util.getScrollSizeByBody())\r
+ + ',ss(de)=' + PROJECT_PREFIX.stringUtils.formatDimension(util.getScrollSizeByDocument())\r
+ + ',ss=' + PROJECT_PREFIX.stringUtils.formatDimension(ss)\r
+ + ',in=' + PROJECT_PREFIX.stringUtils.formatDimension(util.getInnerSize())\r
+ + ',out=' + PROJECT_PREFIX.stringUtils.formatDimension(util.getOuterSize())\r
+ + ',avail=' + PROJECT_PREFIX.stringUtils.formatDimension(util.getAvailableSize())\r
+ + ',screen=' + PROJECT_PREFIX.stringUtils.formatDimension(util.getScreenSize())\r
+ + ',new=' + PROJECT_PREFIX.stringUtils.formatPoint({x:x,y:y})\r
+ );\r
+ util.setElementPosition(n, x, y);\r
+};\r
+\r
+#endif /* _JDISP_GUI_FLOATING_JSH */\r