FLTK 1.3.0
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
Fl_Cairo_Window.H
1
//
2
// "$Id: Fl_Cairo_Window.H 8198 2011-01-06 10:24:58Z manolo $"
3
//
4
// Main header file for the Fast Light Tool Kit (FLTK).
5
//
6
// Copyright 1998-2010 by Bill Spitzak and others.
7
//
8
// This library is free software; you can redistribute it and/or
9
// modify it under the terms of the GNU Library General Public
10
// License as published by the Free Software Foundation; either
11
// version 2 of the License, or (at your option) any later version.
12
//
13
// This library is distributed in the hope that it will be useful,
14
// but WITHOUT ANY WARRANTY; without even the implied warranty of
15
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
// Library General Public License for more details.
17
//
18
// You should have received a copy of the GNU Library General Public
19
// License along with this library; if not, write to the Free Software
20
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
21
// USA.
22
//
23
// Please report all bugs and problems on the following page:
24
//
25
// http://www.fltk.org/str.php
26
//
27
28
/* \file
29
Fl_Cairo_Window Handling transparently a fltk window incorporte a cairo draw callback.
30
*/
31
32
#ifndef FL_CAIRO_WINDOW_H
33
# define FL_CAIRO_WINDOW_H
34
# ifdef FLTK_HAVE_CAIRO
35
36
// Cairo is currently supported for the following platforms:
37
// Win32, Apple Quartz, X11
38
# include <
FL/Fl.H
>
39
# include <FL/Fl_Double_Window.H>
40
57
class
FL_EXPORT
Fl_Cairo_Window
:
public
Fl_Double_Window
{
58
59
public
:
60
Fl_Cairo_Window
(
int
w,
int
h) :
Fl_Double_Window
(w,h),draw_cb_(0) {}
61
62
protected
:
64
void
draw
() {
65
Fl_Double_Window::draw
();
66
// manual method ? if yes explicitly get a cairo_context here
67
if
(!
Fl::cairo_autolink_context
())
68
Fl::cairo_make_current(
this
);
69
if
(draw_cb_) draw_cb_(
this
,
Fl::cairo_cc
());
70
}
71
72
public
:
74
typedef
void (*cairo_draw_cb) (
Fl_Cairo_Window
*
self
, cairo_t* def);
79
void
set_draw_cb
(cairo_draw_cb cb){draw_cb_=cb;}
80
private
:
81
cairo_draw_cb draw_cb_;
82
};
83
84
87
# endif // FLTK_HAVE_CAIRO
88
#endif // FL_CAIRO_WINDOW_H
89
90
//
91
// End of "$Id: Fl_Cairo_Window.H 8198 2011-01-06 10:24:58Z manolo $" .
92
//
© 1998-2011 by Bill Spitzak and others.
© 1998-2011 by Bill Spitzak and others. Permission is granted to reproduce this manual or any portion for any purpose, provided this copyright and permission notice are preserved.