Ignore:
Timestamp:
03/04/20 11:00:23 (4 years ago)
Author:
bnemhaus
Message:

Anchoring with AnchorCenterX and AnchorCenterY now work correctly with connected shapes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/items/Dot.java

    r1415 r1514  
    102102                invalidateFill();
    103103        }
     104       
     105        @Override
     106        public void setAnchorCenterX(Integer anchor) {
     107                if (!isLineEnd()) {
     108                        super.setAnchorCenterX(anchor);
     109                        return;
     110                }
     111               
     112                invalidateFill();
     113                invalidateCommonTrait(ItemAppearence.PreMoved);
     114               
     115                this._anchoring.setCenterXAnchor(anchor);
     116               
     117                int oldX = getX();
     118                if (anchor != null) {
     119                        int centreX = DisplayController.getFramePaintArea().getCentreX();
     120                        int alignedToLeft = centreX + anchor;
     121                        int alignedToCenter = alignedToLeft - (getBoundsWidth() / 2);
     122                        float deltaX = alignedToCenter - oldX;
     123                        anchorConnected(AnchorEdgeType.CenterX, deltaX);
     124                }
     125               
     126                invalidateCommonTrait(ItemAppearence.PostMoved);
     127                invalidateFill();
     128        }
    104129
    105130        @Override
     
    142167                }
    143168
     169                invalidateCommonTrait(ItemAppearence.PostMoved);
     170                invalidateFill();
     171        }
     172       
     173        @Override
     174        public void setAnchorCenterY(Integer anchor) {
     175                if (!isLineEnd()) {
     176                        super.setAnchorCenterY(anchor);
     177                        return;
     178                }
     179                invalidateFill();
     180                invalidateCommonTrait(ItemAppearence.PreMoved);
     181               
     182                this._anchoring.setCenterYAnchor(anchor);
     183               
     184                int oldY = getY();
     185                if (anchor != null) {
     186                        int alignedToTop = DisplayController.getFramePaintArea().getCentreY() + anchor;
     187                        float alignedToCenter = alignedToTop - (getBoundsHeight() / 2);
     188                        float deltaY = alignedToCenter - oldY;
     189                        anchorConnected(AnchorEdgeType.CenterY, deltaY);
     190                }
     191               
    144192                invalidateCommonTrait(ItemAppearence.PostMoved);
    145193                invalidateFill();
Note: See TracChangeset for help on using the changeset viewer.