001: /*
002: * CONFIDENTIAL AND PROPRIETARY SOURCE CODE OF
003: * NETSCAPE COMMUNICATIONS CORPORATION
004: *
005: * Copyright (c) 1996 Netscape Communications Corporation.
006: * All Rights Reserved.
007: * Use of this Source Code is subject to the terms of the applicable
008: * license agreement from Netscape Communications Corporation.
009: */
010:
011: package graphical;
012:
013: import netscape.application.Image;
014: import netscape.application.MouseEvent;
015: import netscape.application.Target;
016: import netscape.application.View;
017:
018: public interface DragPolicy {
019: /* Source policies */
020: /**
021: * Drag source policy that dissallows dragging from this list.
022: */
023: public final static int DRAGFROMDISALLOWED = 101;
024: /**
025: * Drag source policy that allows drag but doesn't alter display.
026: */
027: public final static int DRAGFROMCOPY = 103;
028: /**
029: * Drag source policy that allows drag and removes from display.
030: */
031: public final static int DRAGFROMMOVE = 105;
032:
033: /* Destination policies */
034: /**
035: * Drag destination policy that dissallows dragging to this list.
036: */
037: public final static int DRAGTODISALLOWED = 201;
038: /**
039: * Drag destination policy that allows dragging to this list
040: * without updating it.
041: */
042: public final static int DRAGTOACCEPT = 202;
043: /**
044: * Drag destination policy that allows dragging to this list
045: * and includes the new item in the list if it is a ListItem.
046: * <br>
047: */
048: public final static int DRAGTOACCEPTINCLUDE = 203;
049: /**
050: * Drag destination policy that allows dragging to this list
051: * and includes the new item in the list if it is a ListItem,
052: * displacing what it was dragged to.
053: * <br>
054: */
055: public final static int DRAGTOACCEPTDISPLACE = 204;
056:
057: /**
058: * Set the destination target. When a destination takes in
059: * data, it's handlers can ask another target to do additional
060: * handling.
061: * @param v target view
062: */
063: public void setDestinationTarget(Target t);
064:
065: /**
066: * Set the source target. When a source sends
067: * data, it's handlers can ask another target to do additional
068: * handling.
069: * @param v target view
070: */
071: public void setSourceTarget(Target t);
072:
073: /**
074: * Get the destination target. When a destination takes in
075: * data, it's handlers can ask another target to do additional
076: * handling.
077: * @param v target view
078: */
079: public Target getDestinationTarget();
080:
081: /**
082: * Get the source target. When a source sends
083: * data, it's handlers can ask another target to do additional
084: * handling.
085: * @param v target view
086: */
087: public Target getSourceTarget();
088:
089: /**
090: * Get the drag image.
091: */
092: public abstract Image getDragImage();
093:
094: /**
095: * Set the drag image.
096: * @param dragImage the drag image.
097: */
098: public abstract void setDragImage(Image dragImage);
099:
100: /**
101: * Set the drag source policy.
102: * @param dragSourcePolicy the policy
103: * @exception IllegalArgumentException if not passed a legal policy
104: */
105: public abstract void setDragSourcePolicy(int dragSourcePolicy)
106: throws IllegalArgumentException;
107:
108: /**
109: * Set the drag destination policy.
110: * @param dragDestinationPolicy the policy
111: * @exception IllegalArgumentException if not passed a legal policy
112: */
113: public abstract void setDragDestinationPolicy(
114: int dragDestinationPolicy) throws IllegalArgumentException;
115:
116: // SGP: there should be get*policy()
117:
118: /**
119: * Use to capture the originating mouseDown x, y.
120: * @param e the mouse event
121: */
122: public abstract boolean mouseDown(MouseEvent e);
123:
124: /**
125: * Use to set up the DragSession using the mouseDown x, y.
126: * @param e the mouse event
127: */
128: public abstract void mouseDragged(MouseEvent e);
129:
130: /**
131: * Get the DragPolicyContext.
132: */
133: public abstract DragPolicyContext getDragPolicyContext();
134: }
|