Home | History | Annotate | Download | only in views
      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