Tizen 2.1 base
[framework/osp/uifw.git] / src / graphics / FGrp_FontCache.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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 /*
19  * @file        FGrp_FontCache.h
20  * @brief       This is the header file for _FontCache class.
21  *
22  */
23
24 #ifndef _FGRP_INTERNAL_FONT_CACHE_H_
25 #define _FGRP_INTERNAL_FONT_CACHE_H_
26
27 #include <memory>
28
29 #include <FBaseObject.h>
30
31 #include "FGrp_IFont.h"
32
33
34 namespace Tizen { namespace Graphics
35 {
36
37 class _FontCache
38         : public Tizen::Base::Object
39 {
40 public:
41         _FontCache(void);
42         virtual ~_FontCache(void);
43
44         bool IsValid(void) const;
45
46         bool Find(unsigned long character, int size, int style, _IFont::Glyph** pOut);
47         bool Add(unsigned long character, int size, int style, _IFont::Glyph* pGlyph);
48         void Remove(unsigned long character, int size, int style);
49         void RemoveFirst(void);
50         bool IsEmpty(void);
51
52         bool Cleanup(void);
53
54 private:
55         _FontCache(const _FontCache& obj);
56         _FontCache& operator =(const _FontCache& rhs);
57         _FontCache* operator &(void);
58
59         bool __DiscardVictim(unsigned long requestedSize);
60         bool __RemoveId(unsigned long id);
61
62         void* __pCache;
63
64         friend class _FontCacheImpl;
65         class _FontCacheImpl* __pFontCacheImpl;
66 };
67
68 }} // Tizen::Graphics
69
70 #endif // _FGRP_INTERNAL_FONT_CACHE_H_