00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 #ifndef _FL_FONT_H_
00023 #define _FL_FONT_H_
00024 
00029 #include "Fl_Export.h" 
00030 #include "Fl_String_List.h"
00031 #include "Fl_Int_List.h"
00032 
00033 class FL_API Fl_FontSize;
00034 
00035 struct FL_API Fl_Font_;
00036 typedef const Fl_Font_* Fl_Font;
00037 
00038 
00039 
00043 struct FL_API Fl_Font_ {
00044 
00045     const char* name_;
00046     Fl_Font_* bold_;
00047     Fl_Font_* italic_;
00048 
00049     
00050     Fl_FontSize *first;
00051 
00052 #ifdef _WIN32
00053     
00054     Fl_CString_List *charsets_;
00055     Fl_Int_List *sizes_;
00056 #else
00057     
00058     char **xlist_;
00059     int xlist_n_;
00060     uint cache_xlist();
00061     Fl_FontSize *load_font(float size);
00062 #endif
00063 
00064 
00069     const char *system_name() const { return name_; }
00070 
00075     const char *name(int *attr = 0) const;
00076 
00082     int sizes(int *&parray) const;
00083 
00092     int encodings(const char **&parray) const;
00093 
00098     Fl_Font bold() const { return bold_; }
00103     Fl_Font italic() const { return italic_; }
00104 };
00105 
00109 enum {
00110     FL_BOLD         = 1, 
00111     FL_ITALIC       = 2, 
00112     FL_BOLD_ITALIC  = 3  
00113 };
00114 
00115 
00116 #define FL_HELVETICA             (fl_fonts+0)
00117 #define FL_HELVETICA_BOLD        (fl_fonts+1)
00118 #define FL_HELVETICA_ITALIC      (fl_fonts+2)
00119 #define FL_HELVETICA_BOLD_ITALIC (fl_fonts+3)
00120 #define FL_COURIER               (fl_fonts+4)
00121 #define FL_COURIER_BOLD          (fl_fonts+5)
00122 #define FL_COURIER_ITALIC        (fl_fonts+6)
00123 #define FL_COURIER_BOLD_ITALIC   (fl_fonts+7)
00124 #define FL_TIMES                 (fl_fonts+8)
00125 #define FL_TIMES_BOLD            (fl_fonts+9)
00126 #define FL_TIMES_ITALIC          (fl_fonts+10)
00127 #define FL_TIMES_BOLD_ITALIC     (fl_fonts+11)
00128 #define FL_SYMBOL                (fl_fonts+12)
00129 #define FL_SCREEN                (fl_fonts+13)
00130 #define FL_SCREEN_BOLD           (fl_fonts+14)
00131 #define FL_ZAPF_DINGBATS         (fl_fonts+15)
00132 
00136 extern FL_API Fl_Font_ fl_fonts[16];
00137 
00142 extern FL_API Fl_Font fl_create_font(const char *system_name);
00143 
00147 extern FL_API Fl_Font fl_find_font(const char* name, int attrib = 0);
00148 
00154 extern FL_API int fl_list_fonts(Fl_Font*& arrayp);
00155 
00156 #endif