Ignore:
Timestamp:
02/02/14 18:44:24 (10 years ago)
Author:
davidb
Message:

Variations of isAnchored() so panning can test if an Item is anchored Top/Bottom or Left/Right

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/actions/Misc.java

    r800 r805  
    12221222       
    12231223        public static void pan(Frame frame, int x, int y) {
    1224                 for(Item i : frame.getAllItems()) {
    1225                         if(i instanceof WidgetEdge || i instanceof WidgetCorner) {
     1224                for (Item i : frame.getAllItems()) {
     1225                        if (i instanceof WidgetEdge || i instanceof WidgetCorner) {
    12261226                                continue;
    1227                         } else if(i instanceof XRayable) {
    1228                             if (!i.isAnchored()) {
    1229                                 i.setPosition(i.getX() + x, i.getY() + y);
     1227                        }
     1228                        else {
     1229                            int new_x = i.getX();
     1230                            int new_y = i.getY();
     1231
     1232                            if (!i.isAnchoredX()) {
     1233                                new_x += x;
    12301234                            }
    1231                         } else {
    1232                             if (!i.isAnchored()) {
    1233                                 i.setXY(i.getX() + x, i.getY() + y);
     1235
     1236                            if (!i.isAnchoredY()) {
     1237                                new_y += y;
     1238                            }
     1239
     1240
     1241
     1242                            if ((new_x != x) || (new_y != y)) {
     1243
     1244                                if(i instanceof XRayable) {
     1245
     1246                                    i.setPosition(new_x,new_y);
     1247                                }
     1248
     1249                                else {
     1250                                    i.setXY(new_x,new_y);
     1251                                }
    12341252                            }
    12351253                        }
     
    12371255                        i.updatePolygon();
    12381256                }
    1239                 for(InteractiveWidget iw : frame.getInteractiveWidgets()) {
    1240                     if (!iw.isAnchored()) {
    1241                         iw.setPosition(iw.getX() + x, iw.getY() + y);
     1257
     1258                for (InteractiveWidget iw : frame.getInteractiveWidgets()) {
     1259
     1260                    int new_x = iw.getX();
     1261                    int new_y = iw.getY();
     1262                   
     1263                    if (!iw.isAnchoredX()) {
     1264                        new_x += x;
    12421265                    }
    1243                 }
     1266                   
     1267                    if (!iw.isAnchoredY()) {
     1268                        new_y += y;
     1269                    }
     1270                   
     1271                   
     1272                    if ((new_x != x) || (new_y != y)) {
     1273                       
     1274                        iw.setPosition(new_x,new_y);
     1275                    }
     1276                }
     1277
    12441278                // make sure we save the panning of the frame
    12451279                frame.change();
Note: See TracChangeset for help on using the changeset viewer.