AbstractDrawingPreview.java revision cf915ddc878699909365dd599a0e154552e244e2
1d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi/*
2d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * Copyright (C) 2012 The Android Open Source Project
3d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi *
48aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License");
58aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * you may not use this file except in compliance with the License.
68aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * You may obtain a copy of the License at
7d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi *
88aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka *      http://www.apache.org/licenses/LICENSE-2.0
9d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi *
10d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi * Unless required by applicable law or agreed to in writing, software
118aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS,
128aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * See the License for the specific language governing permissions and
148aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * limitations under 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/**
25cf915ddc878699909365dd599a0e154552e244e2Tadashi G. Takaoka * Abstract base class for previews that are drawn on DrawingPreviewPlacerView, e.g.,
26cf915ddc878699909365dd599a0e154552e244e2Tadashi G. Takaoka * GestureFloatingTextDrawingPreview, GestureTrailsDrawingPreview, and
27cf915ddc878699909365dd599a0e154552e244e2Tadashi G. Takaoka * SlidingKeyInputDrawingPreview.
28d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi */
29d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bipublic abstract class AbstractDrawingPreview {
304987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka    private final View mDrawingView;
31d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi    private boolean mPreviewEnabled;
32d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi
334987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka    protected AbstractDrawingPreview(final View drawingView) {
344987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka        mDrawingView = drawingView;
354987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka    }
364987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka
374987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka    public final View getDrawingView() {
384987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka        return mDrawingView;
394987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka    }
404987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka
414987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka    public final void setPreviewEnabled(final boolean enabled) {
42d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi        mPreviewEnabled = enabled;
43d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi    }
44d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi
45d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi    public boolean isPreviewEnabled() {
46d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi        return mPreviewEnabled;
47d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi    }
48d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi
494987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka    public void setKeyboardGeometry(final int[] originCoords, final int width, final int height) {
504987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka        // Default implementation is empty.
514987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka    }
524987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka
534987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka    public void onDetachFromWindow() {
544987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka        // Default implementation is empty.
554987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka    }
564987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka
57d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi    /**
58d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi     * Draws the preview
59d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi     * @param canvas The canvas where the preview is drawn.
60d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi     */
612ecbfe8e93f8d8fce0adc47659b5d2f52cb68849Tadashi G. Takaoka    public abstract void drawPreview(final Canvas canvas);
62d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi
63d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi    /**
64d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi     * Set the position of the preview.
654987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka     * @param tracker The new location of the preview is based on the points in PointerTracker.
66d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi     */
674987108f34c08825ccb1c859c971bf232438c4aaTadashi G. Takaoka    public abstract void setPreviewPosition(final PointerTracker tracker);
68d52730a2d7a6e98245719ce5c53bcf4b3a3ba1c9Xiaojun Bi}
69