Include a stripped-down version of FLTK in tree and add a USE_INCLUDED_FLTK option to build against it.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4603 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/fltk/src/cgdebug.h b/common/fltk/src/cgdebug.h
new file mode 100644
index 0000000..469beb5
--- /dev/null
+++ b/common/fltk/src/cgdebug.h
@@ -0,0 +1,215 @@
+//
+// "$Id: cgdebug.h 7913 2010-11-29 18:18:27Z greg.ercolano $"
+//
+// OS X Core Graphics debugging help for the Fast Light Tool Kit (FLTK).
+//
+// Copyright 1998-2010 by Bill Spitzak and others.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+// Please report all bugs and problems on the following page:
+//
+// http://www.fltk.org/str.php
+//
+
+// This file allows easier debugging of Mac OS X Core Graphics
+// code. This file is normally not included into any FLTK builds,
+// but since it has proven to be tremendously useful in debugging
+// the FLTK port to "Quartz", I decided to add this file in case
+// more bugs show up.
+//
+// This header is activated by adding the following
+// line to "config.h"
+// #include "src/cgdebug.h"
+//
+// Running "./configure" will remove this line from "config.h".
+//
+// When used erreanously, Core Graphics prints warnings to
+// stderr. This is helpful, however it is not possible to
+// associate a line number or source file with the warning message.
+// This headr file outputs a trace of CG calls, interweaveing
+// them with CG warnings.
+//
+// Matthias
+
+#ifndef CGDEBUG
+#define CGDEBUG
+
+#include <stdio.h>
+#include <Carbon/Carbon.h>
+
+//+BitmapContextCreate
+//+BitmapContextGetData
+// ClipCGContextToRegion
+// QDBeginCGContext
+// QDEndCGContext
+
+//+AddArc
+//+AddLineToPoint
+// ClipToRect
+// ClosePath
+//+ConcatCTM
+//+DrawImage
+// FillPath
+// FillRect
+// Flush
+//+GetCTM
+// MoveToPoint
+//+Release
+// RestoreGState
+// SaveGState
+//+ScaleCTM
+//+SetLineCap
+//+SetLineDash
+//+SetLineJoin
+//+SetLineWidth
+//+SetRGBFillColor
+//+SetRGBStrokeColor
+//+SetShouldAntialias
+//+SetTextMatrix
+//+StrokePath
+//+TranslateCTM
+
+inline OSStatus dbgLocation(const char *file, int line)
+{
+ fprintf(stderr, "%s:%d ", file, line);
+ return 0;
+}
+
+inline OSStatus dbgEndl()
+{
+ fprintf(stderr, "\n");
+ return 0;
+}
+
+
+inline void dbgCGContextClipToRect(CGContextRef a, CGRect b)
+{
+ CGContextClipToRect(a, b);
+}
+
+#define CGContextClipToRect(a, b) { \
+ fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
+ dbgCGContextClipToRect(a, b); \
+ fprintf(stderr, "\n"); }
+
+inline void dbgCGContextFillRect(CGContextRef a, CGRect b)
+{
+ CGContextFillRect(a, b);
+}
+
+#define CGContextFillRect(a, b) { \
+ fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
+ dbgCGContextFillRect(a, b); \
+ fprintf(stderr, "\n"); }
+
+inline OSStatus dbgQDEndCGContext(CGrafPtr a, CGContextRef *b)
+{
+ return QDEndCGContext(a, b);
+}
+
+#define QDEndCGContext(a, b) ( \
+ dbgLocation(__FILE__, __LINE__) + \
+ dbgQDEndCGContext(a, b) + \
+ dbgEndl() )
+
+inline OSStatus dbgQDBeginCGContext(CGrafPtr a, CGContextRef *b)
+{
+ return QDBeginCGContext(a, b);
+}
+
+#define QDBeginCGContext(a, b) ( \
+ dbgLocation(__FILE__, __LINE__) + \
+ dbgQDBeginCGContext(a, b) + \
+ dbgEndl() )
+
+inline void dbgClipCGContextToRegion(CGContextRef a, const Rect *b, RgnHandle c)
+{
+ ClipCGContextToRegion(a, b, c);
+}
+
+#define ClipCGContextToRegion(a, b, c) { \
+ fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
+ dbgClipCGContextToRegion(a, b, c); \
+ fprintf(stderr, "\n"); }
+
+inline void dbgCGContextMoveToPoint(CGContextRef context, float x, float y)
+{
+ CGContextMoveToPoint(context, x, y);
+}
+
+#define CGContextMoveToPoint(a, b, c) { \
+ fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
+ dbgCGContextMoveToPoint(a, b, c); \
+ fprintf(stderr, "\n"); }
+
+inline void dbgCGContextFillPath(CGContextRef context)
+{
+ CGContextFillPath(context);
+}
+
+#define CGContextFillPath(a) { \
+ fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
+ dbgCGContextFillPath(a); \
+ fprintf(stderr, "\n"); }
+
+inline void dbgCGContextClosePath(CGContextRef context)
+{
+ CGContextClosePath(context);
+}
+
+#define CGContextClosePath(a) { \
+ fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
+ dbgCGContextClosePath(a); \
+ fprintf(stderr, "\n"); }
+
+inline void dbgCGContextFlush(CGContextRef context)
+{
+ CGContextFlush(context);
+}
+
+#define CGContextFlush(a) { \
+ fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
+ dbgCGContextFlush(a); \
+ fprintf(stderr, "\n"); }
+
+inline void dbgCGContextSaveGState(CGContextRef context)
+{
+ CGContextSaveGState(context);
+}
+
+#define CGContextSaveGState(a) { \
+ fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
+ dbgCGContextSaveGState(a); \
+ fprintf(stderr, "\n"); }
+
+inline void dbgCGContextRestoreGState(CGContextRef context)
+{
+ CGContextRestoreGState(context);
+}
+
+#define CGContextRestoreGState(a) { \
+ fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
+ dbgCGContextRestoreGState(a); \
+ fprintf(stderr, "\n"); }
+
+
+#endif
+
+//
+// End of "$Id: cgdebug.h 7913 2010-11-29 18:18:27Z greg.ercolano $".
+//
+