summaryrefslogtreecommitdiff
path: root/FL
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2016-02-13 18:02:17 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2016-02-13 18:02:17 +0000
commit8630bdbed221afa4a20a6a4fe8d354ccab877fcf (patch)
tree3e124aeef81c503dfc8c6a5cf9344b95c010303e /FL
parentd8f96b579d9359f62b984b2043a8f8c6854efe98 (diff)
[Cairo] Remove part of the dependency of FL/Fl.H on config.h.
To use Fl_Cairo_Window one did not only need to configure with --enable-cairo, but also needed to #include <config.h> before #include <FL/Fl.H>. This commit removes the smaller part of the dependency of the public header file FL/Fl.H on config.h. This needs a better solution in FLTK 1.4.0. The user still needs to define FLTK_HAVE_CAIRO _before_ #include <FL/Fl.H>. Note: This is not compatible with fluid, since fluid _always_ includes FL/Fl.H as the first statement in generated header files. See also the discussion in fltk.general: https://groups.google.com/d/msg/fltkgeneral/_C1OJhMLQl0/pHUFtz9SCwAJ Note: also fixed a typo in src/drivers/X11/Fl_X11_Screen_Driver.cxx git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11168 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'FL')
-rw-r--r--FL/Fl.H8
-rw-r--r--FL/Fl_Cairo.H30
2 files changed, 18 insertions, 20 deletions
diff --git a/FL/Fl.H b/FL/Fl.H
index e1a2b97fa..5df4b4410 100644
--- a/FL/Fl.H
+++ b/FL/Fl.H
@@ -1295,19 +1295,19 @@ int main() {
static int use_high_res_GL() { return use_high_res_GL_; }
#ifdef FLTK_HAVE_CAIRO
- /** \defgroup group_cairo Cairo support functions and classes
+ /** \defgroup group_cairo Cairo Support Functions and Classes
@{
*/
public:
// Cairo support API
static cairo_t * cairo_make_current(Fl_Window* w);
- /** when FLTK_HAVE_CAIRO is defined and cairo_autolink_context() is true,
- any current window dc is linked to a current context.
+ /** when FLTK_HAVE_CAIRO is defined and cairo_autolink_context() is true,
+ any current window dc is linked to a current cairo context.
This is not the default, because it may not be necessary
to add cairo support to all fltk supported windows.
When you wish to associate a cairo context in this mode,
you need to call explicitly in your draw() overridden method,
- FL::cairo_make_current(Fl_Window*). This will create a cairo context
+ Fl::cairo_make_current(Fl_Window*). This will create a cairo context
but only for this Window.
Still in custom cairo application it is possible to handle
completely this process automatically by setting \p alink to true.
diff --git a/FL/Fl_Cairo.H b/FL/Fl_Cairo.H
index 10e68392a..1994f0e5e 100644
--- a/FL/Fl_Cairo.H
+++ b/FL/Fl_Cairo.H
@@ -3,7 +3,7 @@
//
// Main header file for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2010 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
@@ -29,17 +29,7 @@
# include <FL/Fl_Export.H>
-#if defined(USE_X11) // X11
-# include <cairo-xlib.h>
-#elif defined(WIN32)
-# include <cairo-win32.h>
-#elif defined(__APPLE_QUARTZ__) // PORTME: Cairo Support
-# include <cairo-quartz.h>
-#elif defined(FL_PORTING)
-# pragma message "FL_PORTING: is the Cairo library available on this platform?"
-#else
-# error Cairo is not supported on that platform.
-#endif
+# include <cairo.h>
/**
\addtogroup group_cairo
@@ -60,9 +50,16 @@ public:
// access attributes
cairo_t* cc() const {return cc_;} ///< Gets the current cairo context
bool autolink() const {return autolink_;} ///< Gets the autolink option. See Fl::cairo_autolink_context(bool)
- /** Sets the current cairo context, \p own indicates cc deletion is handle externally by user */
- void cc(cairo_t* c, bool own=true) {
- if (cc_ && own_cc_) cairo_destroy(cc_);
+ /** Sets the current cairo context.
+
+ \p own == \e true (the default) indicates that the cairo context \p c
+ will be deleted by FLTK internally when another cc is set later.
+
+ \p own == \e false indicates cc deletion is handled externally
+ by the user program.
+ */
+ void cc(cairo_t* c, bool own=true) {
+ if (cc_ && own_cc_) cairo_destroy(cc_);
cc_=c;
if (!cc_) window_=0;
own_cc_=own;
@@ -76,7 +73,8 @@ public:
private:
cairo_t * cc_; // contains the unique autoupdated cairo context
bool own_cc_; // indicates whether we must delete the cc, useful for internal cleanup
- bool autolink_; // true by default, permits to prevent the automatic cairo mapping on fltk windows for custom cairo implementations
+ bool autolink_; // false by default, prevents the automatic cairo mapping on fltk windows
+ // for custom cairo implementations.
void* window_, *gc_; // for keeping track internally of last win+gc treated
};