You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2019/05/26 21:22:25 UTC
[royale-asjs] branch develop updated (06d7815 -> 5249aec)
This is an automated email from the ASF dual-hosted git repository.
harbs pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git.
from 06d7815 Merge branch 'develop' of https://github.com/apache/royale-asjs into develop
new 9c94854 This belongs in a viewport bead
new ece4ac8 Fix viewports
new cd19050 This one too.
new 5249aec The position of the drop indicator needs to be calculated relative to its parent
The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../royale/html/supportClasses/HScrollViewport.as | 19 ++-----
.../html/supportClasses/ScrollingViewport.as | 66 ++++++++++++++--------
.../royale/html/supportClasses/VScrollViewport.as | 18 ++----
.../apache/royale/html/supportClasses/Viewport.as | 9 ++-
.../apache/royale/html/beads/DragDropListView.as | 2 -
.../SensitiveSingleSelectionDropTargetBead.as | 15 +++--
.../html/beads/SingleSelectionDropTargetBead.as | 14 +++--
7 files changed, 79 insertions(+), 64 deletions(-)
[royale-asjs] 01/04: This belongs in a viewport bead
Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
harbs pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 9c94854b273131bff5908dbac2833945f22f3aba
Author: Harbs <ha...@in-tools.com>
AuthorDate: Mon May 27 00:17:46 2019 +0300
This belongs in a viewport bead
---
.../src/main/royale/org/apache/royale/html/beads/DragDropListView.as | 2 --
1 file changed, 2 deletions(-)
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListView.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListView.as
index cdfccd4..59ec2cd 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListView.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListView.as
@@ -59,8 +59,6 @@ package org.apache.royale.html.beads
//chost.strandChildren.addElement(_layer);
UIBase(_strand).addElement(_layer);
- UIBase(_strand).element.style['overflow'] = 'auto';
-
}
/**
[royale-asjs] 04/04: The position of the drop indicator needs to be
calculated relative to its parent
Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
harbs pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 5249aec5a7d6b3b120996a3a935d3916281e08e8
Author: Harbs <ha...@in-tools.com>
AuthorDate: Mon May 27 00:22:15 2019 +0300
The position of the drop indicator needs to be calculated relative to its parent
---
.../html/beads/SensitiveSingleSelectionDropTargetBead.as | 15 +++++++++------
.../royale/html/beads/SingleSelectionDropTargetBead.as | 14 ++++++++------
2 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveSingleSelectionDropTargetBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveSingleSelectionDropTargetBead.as
index fe40c83..28a86cc 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveSingleSelectionDropTargetBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveSingleSelectionDropTargetBead.as
@@ -137,6 +137,7 @@ package org.apache.royale.html.beads
/**
* @private
+ * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
*/
public function set strand(value:IStrand):void
{
@@ -145,10 +146,10 @@ package org.apache.royale.html.beads
_dropController = new DropMouseController();
_strand.addBead(_dropController);
- IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_ENTER, handleDragEnter);
- IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_EXIT, handleDragExit);
- IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_OVER, handleDragOver);
- IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_DROP, handleDragDrop);
+ _dropController.addEventListener(DragEvent.DRAG_ENTER, handleDragEnter);
+ _dropController.addEventListener(DragEvent.DRAG_EXIT, handleDragExit);
+ _dropController.addEventListener(DragEvent.DRAG_OVER, handleDragOver);
+ _dropController.addEventListener(DragEvent.DRAG_DROP, handleDragDrop);
IEventDispatcher(_strand).addEventListener(DragEvent.DRAG_MOVE, handleDragMove);
}
@@ -387,11 +388,13 @@ package org.apache.royale.html.beads
COMPILE::JS
private function displayDropIndicator(item:IUIBase, isEndOfList:Boolean=false):void
{
+ var pt:Point = PointUtils.localToGlobal(new Point(0,0), item);
+ pt = PointUtils.globalToLocal(pt,indicatorParent);
if (dropDirection == "horizontal") {
_dropIndicator.x = 0;
- _dropIndicator.y = item.y + (isEndOfList ? item.height : 0);
+ _dropIndicator.y = pt.y + (isEndOfList ? item.height : 0);
} else {
- _dropIndicator.x = item.x + (isEndOfList ? item.width : 0);
+ _dropIndicator.x = pt.x + (isEndOfList ? item.width : 0);
_dropIndicator.y = 0;
}
}
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
index 7db7d49..23707be 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
@@ -148,10 +148,10 @@ package org.apache.royale.html.beads
_dropController = new DropMouseController();
_strand.addBead(_dropController);
- IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_ENTER, handleDragEnter);
- IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_EXIT, handleDragExit);
- IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_OVER, handleDragOver);
- IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_DROP, handleDragDrop);
+ _dropController.addEventListener(DragEvent.DRAG_ENTER, handleDragEnter);
+ _dropController.addEventListener(DragEvent.DRAG_EXIT, handleDragExit);
+ _dropController.addEventListener(DragEvent.DRAG_OVER, handleDragOver);
+ _dropController.addEventListener(DragEvent.DRAG_DROP, handleDragDrop);
}
private var _dropDirection: String = "horizontal";
@@ -413,11 +413,13 @@ package org.apache.royale.html.beads
COMPILE::JS
private function displayDropIndicator(item:IUIBase):void
{
+ var pt:Point = PointUtils.localToGlobal(new Point(0,0), item);
+ pt = PointUtils.globalToLocal(pt,indicatorParent);
if (dropDirection == "horizontal") {
_dropIndicator.x = 0;
- _dropIndicator.y = item.y;
+ _dropIndicator.y = pt.y;
} else {
- _dropIndicator.x = item.x;
+ _dropIndicator.x = pt.x;
_dropIndicator.y = 0;
}
}
[royale-asjs] 03/04: This one too.
Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
harbs pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit cd19050eab44d9fe4b9a1a7d78f13f2e8ad54e14
Author: Harbs <ha...@in-tools.com>
AuthorDate: Mon May 27 00:21:42 2019 +0300
This one too.
---
.../royale/html/supportClasses/VScrollViewport.as | 18 +++++-------------
1 file changed, 5 insertions(+), 13 deletions(-)
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
index 9feb90d..4f6d131 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
@@ -78,20 +78,12 @@ package org.apache.royale.html.supportClasses
// Do nothing
}
- /**
- * @royaleignorecoercion HTMLElement
- */
- override public function set strand(value:IStrand):void
+ override protected function setScrollStyle():void
{
- super.strand = value;
- if (contentView == null) {
- (value as UIBase).element.style.overflow = "hidden";
- (value as UIBase).element.style.overflowY = "auto";
- } else {
- (contentView as UIBase).element.style.overflow = "hidden";
- (contentView as UIBase).element.style.overflowY = "auto";
- }
- }
+ contentArea.element.style.overflow = "hidden";
+ contentArea.element.style.overflowY = "auto";
+ adaptContentArea();
+ }
}
COMPILE::SWF
[royale-asjs] 02/04: Fix viewports
Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
harbs pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit ece4ac898282d0a31d4d3d2eb9e6ef749ff4b7e0
Author: Harbs <ha...@in-tools.com>
AuthorDate: Mon May 27 00:21:31 2019 +0300
Fix viewports
Scrolling viewports should reference the correct divs
Viewport percentage sizes need to match those of the strand
---
.../royale/html/supportClasses/HScrollViewport.as | 19 ++-----
.../html/supportClasses/ScrollingViewport.as | 66 ++++++++++++++--------
.../apache/royale/html/supportClasses/Viewport.as | 9 ++-
3 files changed, 57 insertions(+), 37 deletions(-)
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/HScrollViewport.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/HScrollViewport.as
index 0a96b42..28851cd 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/HScrollViewport.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/HScrollViewport.as
@@ -78,20 +78,13 @@ package org.apache.royale.html.supportClasses
// Do nothing
}
- /**
- * @royaleignorecoercion HTMLElement
- */
- override public function set strand(value:IStrand):void
+ override protected function setScrollStyle():void
{
- super.strand = value;
- if (contentView == null) {
- (value as UIBase).element.style.overflow = "hidden";
- (value as UIBase).element.style.overflowX = "auto";
- } else {
- (contentView as UIBase).element.style.overflow = "hidden";
- (contentView as UIBase).element.style.overflowX = "auto";
- }
- }
+ contentArea.element.style.overflow = "hidden";
+ contentArea.element.style.overflowX = "auto";
+ adaptContentArea();
+ }
+
}
COMPILE::SWF
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ScrollingViewport.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ScrollingViewport.as
index 807c1d6..03d896a 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ScrollingViewport.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ScrollingViewport.as
@@ -43,6 +43,8 @@ package org.apache.royale.html.supportClasses
import org.apache.royale.events.Event;
import org.apache.royale.geom.Size;
import org.apache.royale.geom.Rectangle;
+ import org.apache.royale.core.ILayoutChild;
+ import org.apache.royale.events.IEventDispatcher;
/**
* The ScrollingViewport extends the Viewport class by adding horizontal and
@@ -73,53 +75,71 @@ package org.apache.royale.html.supportClasses
public function get verticalScrollPosition():Number
{
- return this.contentView.positioner.scrollTop;
+ return contentArea.element.scrollTop;
}
public function set verticalScrollPosition(value:Number):void
{
- this.contentView.positioner.scrollTop = value;
+ contentArea.element.scrollTop = value;
}
public function get horizontalScrollPosition():Number
{
- return this.contentView.positioner.scrollLeft;
+ return contentArea.element.scrollLeft;
}
public function set horizontalScrollPosition(value:Number):void
{
- this.contentView.positioner.scrollLeft = value;
+ contentArea.element.scrollLeft = value;
}
/**
- * @royaleignorecoercion HTMLElement
- * @royaleignorecoercion org.apache.royale.core.UIBase
+ *
+ * @royaleignorecoercion org.apache.royale.core.ILayoutChild
*/
- override public function set strand(value:IStrand):void
+ override protected function setScrollStyle():void
{
- super.strand = value;
- var component:UIBase;
- if (contentView == null) {
- component = value as UIBase;
- } else {
- component = contentView as UIBase;
+ contentArea.element.style.overflow = "auto";
+ adaptContentArea();
+ }
+
+ /**
+ * If the contentArea is not the same as the strand,
+ * we need to sync the percentage sizes for scrolling to work correctly.
+ * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+ */
+ protected function adaptContentArea():void
+ {
+ if(_strand != contentArea)
+ {
+ var host:ILayoutChild = _strand as ILayoutChild;
+ var val:Number = host.percentHeight;
+ if(!isNaN(val)){
+ contentArea.percentHeight = val;
+ }
+ val = host.percentWidth;
+ if(!isNaN(val)){
+ contentArea.percentWidth = val;
+ }
+ (_strand as IEventDispatcher).addEventListener("percentWidthChanged",handleWidthChange);
+ (_strand as IEventDispatcher).addEventListener("percentHeightChanged",handleHeightChange);
}
- component.element.style.overflow = "auto";
+
}
-
/**
- * @copy org.apache.royale.core.IViewport
- */
- override public function layoutViewportBeforeContentLayout(width:Number, height:Number):void
+ * @royaleignorecoercion org.apache.royale.core.ILayoutChild
+ */
+ private function handleWidthChange(ev:Event):void
{
- // does nothing for the JS platform
+ contentArea.percentWidth = (_strand as ILayoutChild).percentWidth;
}
-
+
/**
- * @copy org.apache.royale.core.IViewport
+ * @royaleignorecoercion org.apache.royale.core.ILayoutChild
*/
- override public function layoutViewportAfterContentLayout(contentSize:Size):void
+ private function handleHeightChange(ev:Event):void
{
- // does nothing for the JS platform
+ contentArea.percentHeight = (_strand as ILayoutChild).percentHeight;
}
+
}
COMPILE::SWF
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/Viewport.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/Viewport.as
index 8fe96d6..b9bbbd0 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/Viewport.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/Viewport.as
@@ -99,7 +99,14 @@ package org.apache.royale.html.supportClasses
if (!contentArea)
contentArea = value as UIBase;
-
+ setScrollStyle();
+ }
+ /**
+ * Subclasses override this method to change scrolling behavior
+ */
+ COMPILE::JS
+ protected function setScrollStyle():void
+ {
contentArea.element.style.overflow = "hidden";
}