1
2/*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9
10#ifndef SkTagList_DEFINED
11#define SkTagList_DEFINED
12
13#include "SkTypes.h"
14
15enum SkTagListEnum {
16    kListeners_SkTagList,
17    kViewLayout_SkTagList,
18    kViewArtist_SkTagList,
19
20    kSkTagListCount
21};
22
23struct SkTagList {
24    SkTagList*  fNext;
25    uint16_t    fExtra16;
26    uint8_t     fExtra8;
27    uint8_t     fTag;
28
29    SkTagList(U8CPU tag) : fTag(SkToU8(tag))
30    {
31        SkASSERT(tag < kSkTagListCount);
32        fNext       = NULL;
33        fExtra16    = 0;
34        fExtra8     = 0;
35    }
36    virtual ~SkTagList();
37
38    static SkTagList*   Find(SkTagList* head, U8CPU tag);
39    static void         DeleteTag(SkTagList** headptr, U8CPU tag);
40    static void         DeleteAll(SkTagList* head);
41};
42
43#endif
44