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 $".
+//
+