11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project
41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */
81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkDisplayEvents_DEFINED
110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkDisplayEvents_DEFINED
120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkEvent.h"
140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayEvent.h"
150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectstruct SkEventState {
170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkEventState();
180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    int fCode;
190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkBool fDisable;
200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkDisplayable* fDisplayable;
210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkScalar fX;
220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkScalar fY;
230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project};
240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkEvents {
260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic:
270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkEvents();
280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    ~SkEvents();
290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    void addEvent(SkDisplayEvent* evt) { *fEvents.append() = evt; }
300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    bool doEvent(SkAnimateMaker& , SkDisplayEvent::Kind , SkEventState* );
310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_DUMP_ENABLED
320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    void dump(SkAnimateMaker& );
330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    void reset() { fEvents.reset(); }
350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    void removeEvent(SkDisplayEvent::Kind kind, SkEventState* );
360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate:
370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkTDDisplayEventArray fEvents;
380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkBool fError;
390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    friend class SkDisplayXMLParser;
400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project};
410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif // SkDisplayEvents_DEFINED
430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
44