AbstractDrawingPreview.java revision 4987108f34c08825ccb1c859c971bf232438c4aa
1d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi/* 2d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * Copyright (C) 2012 The Android Open Source Project 3d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * 4d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * use this file except in compliance with the License. You may obtain a copy of 6d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * the License at 7d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * 8d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * http://www.apache.org/licenses/LICENSE-2.0 9d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * 10d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * Unless required by applicable law or agreed to in writing, software 11d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * License for the specific language governing permissions and limitations under 14d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * the License. 15d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi */ 16d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 17d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bipackage com.android.inputmethod.keyboard.internal; 18d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 19d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Biimport android.graphics.Canvas; 204987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaokaimport android.view.View; 21d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 22d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Biimport com.android.inputmethod.keyboard.PointerTracker; 23d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 24d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi/** 25d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * Abstract base class for previews that are drawn on PreviewPlacerView, e.g., 26d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * GestureFloatingPrevewText, GestureTrail, and SlidingKeyInputPreview. 27d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi */ 28d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bipublic abstract class AbstractDrawingPreview { 294987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka private final View mDrawingView; 30d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi private boolean mPreviewEnabled; 31d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 324987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka protected AbstractDrawingPreview(final View drawingView) { 334987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka mDrawingView = drawingView; 344987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka } 354987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka 364987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka public final View getDrawingView() { 374987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka return mDrawingView; 384987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka } 394987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka 404987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka public final void setPreviewEnabled(final boolean enabled) { 41d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi mPreviewEnabled = enabled; 42d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi } 43d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 44d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi public boolean isPreviewEnabled() { 45d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi return mPreviewEnabled; 46d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi } 47d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 484987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka public void setKeyboardGeometry(final int[] originCoords, final int width, final int height) { 494987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka // Default implementation is empty. 504987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka } 514987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka 524987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka public void onDetachFromWindow() { 534987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka // Default implementation is empty. 544987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka } 554987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka 56d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi /** 57d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * Draws the preview 58d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * @param canvas The canvas where the preview is drawn. 59d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi */ 602ecbfe8e93f8d8fce0adc47659b5d2f52cb68849Tadashi G. Takaoka public abstract void drawPreview(final Canvas canvas); 61d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi 62d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi /** 63d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * Set the position of the preview. 644987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka * @param tracker The new location of the preview is based on the points in PointerTracker. 65d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi */ 664987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka public abstract void setPreviewPosition(final PointerTracker tracker); 67d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi} 68