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