Skip to content

Commit

Permalink
X11: More explicit warning when using rotated text w/o Xft.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Albrecht Schlosser committed Sep 25, 2016
1 parent c2fd056 commit 34f5e4f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
13 changes: 9 additions & 4 deletions FL/fl_draw.H
Expand Up @@ -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
Expand Down Expand Up @@ -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.
Expand All @@ -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); }
/**
Expand Down
8 changes: 7 additions & 1 deletion src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_x.cxx
Expand Up @@ -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);
}

Expand Down

0 comments on commit 34f5e4f

Please sign in to comment.