X11: More explicit warning when using rotated text w/o Xft.

The warning is issued to stderr only once (previously: every time rotated
text was used).



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11978 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Albrecht Schlosser 2016-09-25 11:23:27 +00:00
parent c2fd05633c
commit 34f5e4f752
2 changed files with 16 additions and 5 deletions

View File

@ -3,7 +3,7 @@
//
// Portable drawing function header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2011 by Bill Spitzak and others.
// Copyright 1998-2016 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
@ -624,8 +624,8 @@ FL_EXPORT const char *fl_local_to_mac_roman(const char *t, int n=-1);
*/
FL_EXPORT void fl_draw(const char* str, int x, int y);
/**
Draws a nul-terminated UTF-8 string starting at the given \p x, \p y location and
rotating \p angle degrees counter-clockwise.
Draws a nul-terminated UTF-8 string starting at the given \p x, \p y
location and rotating \p angle degrees counter-clockwise.
This version of fl_draw provides direct access to the text drawing
function of the underlying OS and is supported by Xft, Win32 and MacOS
fltk subsets.
@ -636,8 +636,13 @@ FL_EXPORT void fl_draw(int angle, const char* str, int x, int y);
*/
inline void fl_draw(const char* str, int n, int x, int y) {fl_graphics_driver->draw(str,n,x,y); }
/**
Draws at the given \p x, \p y location a UTF-8 string of length \p n bytes
Draws at the given \p x, \p y location a UTF-8 string of length \p n bytes
rotating \p angle degrees counter-clockwise.
\note When using X11 (Unix, Linux, Cygwin et al.) this needs Xft to work.
Under plain X11 (w/o Xft) rotated text is not supported by FLTK.
A warning will be issued to stderr at runtime (only once) if you
use this method with an angle other than 0.
*/
inline void fl_draw(int angle, const char* str, int n, int x, int y) {fl_graphics_driver->draw(angle,str,n,x,y); }
/**

View File

@ -659,7 +659,13 @@ void Fl_Xlib_Graphics_Driver::draw(const char* c, int n, int x, int y) {
}
void Fl_Xlib_Graphics_Driver::draw(int angle, const char *str, int n, int x, int y) {
fprintf(stderr,"ROTATING TEXT NOT IMPLEMENTED\n");
static char warning = 0; // issue warning only once
if (!warning && angle != 0) {
warning = 1;
fprintf(stderr,
"libfltk: rotated text not implemented by X backend.\n"
" You should use the Xft backend. Check USE_XFT in config.h.\n");
}
this->draw(str, n, (int)x, (int)y);
}