diff options
| author | Manolo Gouy <Manolo> | 2016-04-02 13:22:48 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2016-04-02 13:22:48 +0000 |
| commit | d011d5b4f060166f87fc44594f7f31ddf6b652e9 (patch) | |
| tree | 45d6edbcd0dcad0abf71a76a146be36716b0a927 /src/drivers/Quartz | |
| parent | c03f3d8946c3a68aea2c8c11705e04eeff0e02c9 (diff) | |
Replace src/Fl_Font.H by one file for each platform.
This file contained nearly only platform-specific code.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11507 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/Quartz')
| -rw-r--r-- | src/drivers/Quartz/Fl_Font.H | 76 | ||||
| -rw-r--r-- | src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx | 9 |
2 files changed, 81 insertions, 4 deletions
diff --git a/src/drivers/Quartz/Fl_Font.H b/src/drivers/Quartz/Fl_Font.H new file mode 100644 index 000000000..8d4b7d23f --- /dev/null +++ b/src/drivers/Quartz/Fl_Font.H @@ -0,0 +1,76 @@ +// +// "$Id: Fl_Font.H 11506 2016-04-02 11:58:13Z manolo $" +// +// Font definitions for the Fast Light Tool Kit (FLTK). +// +// Copyright 1998-2011 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// http://www.fltk.org/COPYING.php +// +// Please report all bugs and problems on the following page: +// +// http://www.fltk.org/str.php +// + +// Two internal fltk data structures: +// +// Fl_Fontdesc: an entry into the fl_font() table. There is one of these +// for each fltk font number. +// +#ifndef FL_FONT_ +#define FL_FONT_ + +#include <config.h> +#include <ApplicationServices/ApplicationServices.h> + +/** + This a structure for an actual system font, with junk to + help choose it and info on character sizes. Each Fl_Fontdesc has a + linked list of these. These are created the first time each system + font/size combination is used. +*/ +class Fl_Font_Descriptor { +public: + /** linked list for this Fl_Fontdesc */ + Fl_Font_Descriptor *next; + Fl_Fontsize size; /**< font size */ +#ifndef FL_DOXYGEN // don't bother with platorm dependant details in the doc. + Fl_Font_Descriptor(const char* fontname, Fl_Fontsize size); + ATSUTextLayout layout; +# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 + CTFontRef fontref; + // the unicode span is divided in 512 blocks of 128 characters + float *width[512]; // array of arrays of character widths +# endif + ATSUStyle style; + short ascent, descent, q_width; +# if HAVE_GL + unsigned int listbase;// base of display list, 0 = none +# endif // HAVE_GL + + FL_EXPORT ~Fl_Font_Descriptor(); + +#endif // FL_DOXYGEN +}; + +//extern FL_EXPORT Fl_Font_Descriptor *fl_fontsize; // the currently selected one + +struct Fl_Fontdesc { + const char *name; + char fontname[128]; // "Pretty" font name + Fl_Font_Descriptor *first; // linked list of sizes of this style + char **xlist; // matched X font names + int n; // size of xlist, negative = don't free xlist! +}; + +extern FL_EXPORT Fl_Fontdesc *fl_fonts; // the table + +#endif + +// +// End of "$Id: Fl_Font.H 11506 2016-04-02 11:58:13Z manolo $". +// diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx index 9e51a97a1..eca6fb5d2 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx @@ -25,6 +25,7 @@ #include <FL/Fl.H> #include <FL/x.H> #include <FL/fl_utf8.h> +#include <FL/Fl_Screen_Driver.H> Fl_Fontdesc* fl_fonts = NULL; @@ -48,7 +49,7 @@ static const int CoreText_threshold = 100500; // this represents Mac OS 10.5 // turn a stored font name into a pretty name: const char* Fl::get_font_name(Fl_Font fnum, int* ap) { - if (!fl_fonts) fl_fonts = Fl_X::calc_fl_fonts(); + if (!fl_fonts) fl_fonts = Fl_Screen_Driver::calc_fl_fonts(); Fl_Fontdesc *f = fl_fonts + fnum; if (!f->fontname[0]) { #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 @@ -200,7 +201,7 @@ else { int Fl::get_font_sizes(Fl_Font fnum, int*& sizep) { static int array[128]; - if (!fl_fonts) fl_fonts = Fl_X::calc_fl_fonts(); + if (!fl_fonts) fl_fonts = Fl_Screen_Driver::calc_fl_fonts(); Fl_Fontdesc *s = fl_fonts+fnum; if (!s->name) s = fl_fonts; // empty slot in table, use entry 0 int cnt = 0; @@ -416,7 +417,7 @@ static UniChar *mac_Utf8_to_Utf16(const char *txt, int len, int *new_len) return utfWbuf; } // mac_Utf8_to_Utf16 -Fl_Fontdesc* Fl_X::calc_fl_fonts(void) +Fl_Fontdesc* Fl_Screen_Driver::calc_fl_fonts(void) { if (!fl_mac_os_version) fl_mac_os_version = Fl_Darwin_System_Driver::calc_mac_os_version(); #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 @@ -427,7 +428,7 @@ Fl_Fontdesc* Fl_X::calc_fl_fonts(void) } static Fl_Font_Descriptor* find(Fl_Font fnum, Fl_Fontsize size) { - if (!fl_fonts) fl_fonts = Fl_X::calc_fl_fonts(); + if (!fl_fonts) fl_fonts = Fl_Screen_Driver::calc_fl_fonts(); Fl_Fontdesc* s = fl_fonts+fnum; if (!s->name) s = fl_fonts; // use 0 if fnum undefined Fl_Font_Descriptor* f; |
