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