text-tag.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef GCCV_TEXT_TAG_H
00026 #define GCCV_TEXT_TAG_H
00027
00028 #include <gcu/macros.h>
00029 #include <pango/pango.h>
00030 #include <string>
00031
00033 namespace gccv {
00034
00035
00036 typedef enum
00037 {
00038 Invalid,
00039 Family,
00040 Size,
00041 Weight,
00042 Subscript,
00043 Superscript,
00044 Max
00045 } Tag;
00046
00047 class TextTag
00048 {
00049 public:
00050 TextTag (Tag tag);
00051 virtual ~TextTag ();
00052
00053 virtual void Filter (PangoAttrList *l, unsigned start, unsigned end) = 0;
00054 private:
00055
00056 GCU_RO_PROP (Tag, Tag)
00057 GCU_PROP (unsigned, StartIndex)
00058 GCU_PROP (unsigned, EndIndex)
00059 };
00060
00061 class FamilyTextTag: public TextTag
00062 {
00063 public:
00064 FamilyTextTag (char const *family);
00065 virtual ~FamilyTextTag ();
00066
00067 virtual void Filter (PangoAttrList *l, unsigned start, unsigned end);
00068
00069 private:
00070 std::string m_Family;
00071 };
00072
00073 class SizeTextTag: public TextTag
00074 {
00075 public:
00076 SizeTextTag (double size);
00077 virtual ~SizeTextTag ();
00078
00079 virtual void Filter (PangoAttrList *l, unsigned start, unsigned end);
00080
00081 private:
00082 double m_Size;
00083 };
00084
00085 class SubscriptTextTag: public TextTag
00086 {
00087 public:
00088 SubscriptTextTag ();
00089 virtual ~SubscriptTextTag ();
00090
00091 virtual void Filter (PangoAttrList *l, unsigned start, unsigned end);
00092 };
00093
00094 }
00095
00096 #endif // GCCV_TEXT_TAG_H