| /* |
| * Copyright (C) 2008 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.launcher2; |
| |
| import android.graphics.Rect; |
| |
| /** |
| * Interface defining an object that can receive a drag. |
| * |
| */ |
| public interface DropTarget { |
| /** |
| * Used to temporarily disable certain drop targets |
| * |
| * @return boolean specifying whether this drop target is currently enabled |
| */ |
| boolean isDropEnabled(); |
| |
| /** |
| * Handle an object being dropped on the DropTarget |
| * |
| * @param source DragSource where the drag started |
| * @param x X coordinate of the drop location |
| * @param y Y coordinate of the drop location |
| * @param xOffset Horizontal offset with the object being dragged where the original |
| * touch happened |
| * @param yOffset Vertical offset with the object being dragged where the original |
| * touch happened |
| * @param dragView The DragView that's being dragged around on screen. |
| * @param dragInfo Data associated with the object being dragged |
| * |
| */ |
| void onDrop(DragSource source, int x, int y, int xOffset, int yOffset, |
| DragView dragView, Object dragInfo); |
| |
| void onDragEnter(DragSource source, int x, int y, int xOffset, int yOffset, |
| DragView dragView, Object dragInfo); |
| |
| void onDragOver(DragSource source, int x, int y, int xOffset, int yOffset, |
| DragView dragView, Object dragInfo); |
| |
| void onDragExit(DragSource source, int x, int y, int xOffset, int yOffset, |
| DragView dragView, Object dragInfo); |
| |
| /** |
| * Allows a DropTarget to delegate drag and drop events to another object. |
| * |
| * Most subclasses will should just return null from this method. |
| * |
| * @param source DragSource where the drag started |
| * @param x X coordinate of the drop location |
| * @param y Y coordinate of the drop location |
| * @param xOffset Horizontal offset with the object being dragged where the original |
| * touch happened |
| * @param yOffset Vertical offset with the object being dragged where the original |
| * touch happened |
| * @param dragView The DragView that's being dragged around on screen. |
| * @param dragInfo Data associated with the object being dragged |
| * |
| * @return The DropTarget to delegate to, or null to not delegate to another object. |
| */ |
| DropTarget getDropTargetDelegate(DragSource source, int x, int y, int xOffset, int yOffset, |
| DragView dragView, Object dragInfo); |
| |
| /** |
| * Check if a drop action can occur at, or near, the requested location. |
| * This will be called just before onDrop. |
| * |
| * @param source DragSource where the drag started |
| * @param x X coordinate of the drop location |
| * @param y Y coordinate of the drop location |
| * @param xOffset Horizontal offset with the object being dragged where the |
| * original touch happened |
| * @param yOffset Vertical offset with the object being dragged where the |
| * original touch happened |
| * @param dragView The DragView that's being dragged around on screen. |
| * @param dragInfo Data associated with the object being dragged |
| * @return True if the drop will be accepted, false otherwise. |
| */ |
| boolean acceptDrop(DragSource source, int x, int y, int xOffset, int yOffset, |
| DragView dragView, Object dragInfo); |
| |
| // These methods are implemented in Views |
| void getHitRect(Rect outRect); |
| void getLocationOnScreen(int[] loc); |
| int getLeft(); |
| int getTop(); |
| } |