1 /* libs/graphics/views/SkTagList.h 2 ** 3 ** Copyright 2006, The Android Open Source Project 4 ** 5 ** Licensed under the Apache License, Version 2.0 (the "License"); 6 ** you may not use this file except in compliance with the License. 7 ** You may obtain a copy of the License at 8 ** 9 ** http://www.apache.org/licenses/LICENSE-2.0 10 ** 11 ** Unless required by applicable law or agreed to in writing, software 12 ** distributed under the License is distributed on an "AS IS" BASIS, 13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 ** See the License for the specific language governing permissions and 15 ** limitations under the License. 16 */ 17 18 #ifndef SkTagList_DEFINED 19 #define SkTagList_DEFINED 20 21 #include "SkTypes.h" 22 23 enum SkTagListEnum { 24 kListeners_SkTagList, 25 kViewLayout_SkTagList, 26 kViewArtist_SkTagList, 27 28 kSkTagListCount 29 }; 30 31 struct SkTagList { 32 SkTagList* fNext; 33 uint16_t fExtra16; 34 uint8_t fExtra8; 35 uint8_t fTag; 36 37 SkTagList(U8CPU tag) : fTag(SkToU8(tag)) 38 { 39 SkASSERT(tag < kSkTagListCount); 40 fNext = NULL; 41 fExtra16 = 0; 42 fExtra8 = 0; 43 } 44 virtual ~SkTagList(); 45 46 static SkTagList* Find(SkTagList* head, U8CPU tag); 47 static void DeleteTag(SkTagList** headptr, U8CPU tag); 48 static void DeleteAll(SkTagList* head); 49 }; 50 51 #endif 52