diff options
Diffstat (limited to 'src/com/android/calendar/EventGeometry.java')
-rw-r--r-- | src/com/android/calendar/EventGeometry.java | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/src/com/android/calendar/EventGeometry.java b/src/com/android/calendar/EventGeometry.java deleted file mode 100644 index cdecb49c..00000000 --- a/src/com/android/calendar/EventGeometry.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * 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.calendar; - -import android.graphics.Rect; - -public class EventGeometry { - // This is the space from the grid line to the event rectangle. - private int mCellMargin = 0; - - private float mMinuteHeight; - - private float mHourGap; - private float mMinEventHeight; - - void setCellMargin(int cellMargin) { - mCellMargin = cellMargin; - } - - public void setHourGap(float gap) { - mHourGap = gap; - } - - public void setMinEventHeight(float height) { - mMinEventHeight = height; - } - - public void setHourHeight(float height) { - mMinuteHeight = height / 60.0f; - } - - // Computes the rectangle coordinates of the given event on the screen. - // Returns true if the rectangle is visible on the screen. - public boolean computeEventRect(int date, int left, int top, int cellWidth, Event event) { - if (event.drawAsAllday()) { - return false; - } - - float cellMinuteHeight = mMinuteHeight; - int startDay = event.startDay; - int endDay = event.endDay; - - if (startDay > date || endDay < date) { - return false; - } - - int startTime = event.startTime; - int endTime = event.endTime; - - // If the event started on a previous day, then show it starting - // at the beginning of this day. - if (startDay < date) { - startTime = 0; - } - - // If the event ends on a future day, then show it extending to - // the end of this day. - if (endDay > date) { - endTime = DayView.MINUTES_PER_DAY; - } - - int col = event.getColumn(); - int maxCols = event.getMaxColumns(); - int startHour = startTime / 60; - int endHour = endTime / 60; - - // If the end point aligns on a cell boundary then count it as - // ending in the previous cell so that we don't cross the border - // between hours. - if (endHour * 60 == endTime) - endHour -= 1; - - event.top = top; - event.top += (int) (startTime * cellMinuteHeight); - event.top += startHour * mHourGap; - - event.bottom = top; - event.bottom += (int) (endTime * cellMinuteHeight); - event.bottom += endHour * mHourGap - 1; - - // Make the rectangle be at least mMinEventHeight pixels high - if (event.bottom < event.top + mMinEventHeight) { - event.bottom = event.top + mMinEventHeight; - } - - float colWidth = (float) (cellWidth - (maxCols + 1) * mCellMargin) / (float) maxCols; - event.left = left + col * (colWidth + mCellMargin); - event.right = event.left + colWidth; - return true; - } - - /** - * Returns true if this event intersects the selection region. - */ - boolean eventIntersectsSelection(Event event, Rect selection) { - if (event.left < selection.right && event.right >= selection.left - && event.top < selection.bottom && event.bottom >= selection.top) { - return true; - } - return false; - } - - /** - * Computes the distance from the given point to the given event. - */ - float pointToEvent(float x, float y, Event event) { - float left = event.left; - float right = event.right; - float top = event.top; - float bottom = event.bottom; - - if (x >= left) { - if (x <= right) { - if (y >= top) { - if (y <= bottom) { - // x,y is inside the event rectangle - return 0f; - } - // x,y is below the event rectangle - return y - bottom; - } - // x,y is above the event rectangle - return top - y; - } - - // x > right - float dx = x - right; - if (y < top) { - // the upper right corner - float dy = top - y; - return (float) Math.sqrt(dx * dx + dy * dy); - } - if (y > bottom) { - // the lower right corner - float dy = y - bottom; - return (float) Math.sqrt(dx * dx + dy * dy); - } - // x,y is to the right of the event rectangle - return dx; - } - // x < left - float dx = left - x; - if (y < top) { - // the upper left corner - float dy = top - y; - return (float) Math.sqrt(dx * dx + dy * dy); - } - if (y > bottom) { - // the lower left corner - float dy = y - bottom; - return (float) Math.sqrt(dx * dx + dy * dy); - } - // x,y is to the left of the event rectangle - return dx; - } -} |