FLTK 1.3.5
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
Fl_Image.H
Go to the documentation of this file.
1
//
2
// "$Id$"
3
//
4
// Image header file for the Fast Light Tool Kit (FLTK).
5
//
6
// Copyright 1998-2016 by Bill Spitzak and others.
7
//
8
// This library is free software. Distribution and use rights are outlined in
9
// the file "COPYING" which should have been included with this file. If this
10
// file is missing or damaged, see the license at:
11
//
12
// http://www.fltk.org/COPYING.php
13
//
14
// Please report all bugs and problems on the following page:
15
//
16
// http://www.fltk.org/str.php
17
//
18
22
#ifndef Fl_Image_H
23
# define Fl_Image_H
24
25
# include "
Enumerations.H
"
26
#include <stdlib.h>
27
28
class
Fl_Widget
;
29
class
Fl_Pixmap
;
30
struct
Fl_Menu_Item
;
31
struct
Fl_Label
;
32
33
37
enum
Fl_RGB_Scaling
{
38
FL_RGB_SCALING_NEAREST
= 0,
39
FL_RGB_SCALING_BILINEAR
40
};
41
42
55
class
FL_EXPORT
Fl_Image
{
56
57
public
:
58
static
const
int
ERR_NO_IMAGE = -1;
59
static
const
int
ERR_FILE_ACCESS = -2;
60
static
const
int
ERR_FORMAT = -3;
61
62
private
:
63
int
w_, h_, d_, ld_, count_;
64
const
char
*
const
*data_;
65
static
Fl_RGB_Scaling
RGB_scaling_;
66
67
// Forbid use of copy constructor and assign operator
68
Fl_Image
& operator=(
const
Fl_Image
&);
69
Fl_Image
(
const
Fl_Image
&);
70
71
protected
:
72
76
void
w
(
int
W) {w_ = W;}
80
void
h
(
int
H) {h_ = H;}
84
void
d
(
int
D) {d_ = D;}
96
void
ld
(
int
LD) {ld_ = LD;}
100
void
data
(
const
char
*
const
*p,
int
c) {data_ = p; count_ = c;}
101
void
draw_empty(
int
X,
int
Y);
102
103
static
void
labeltype(
const
Fl_Label
*lo,
int
lx,
int
ly,
int
lw,
int
lh,
Fl_Align
la);
104
static
void
measure(
const
Fl_Label
*lo,
int
&lw,
int
&lh);
105
106
public
:
107
111
int
w
()
const
{
return
w_;}
115
int
h
()
const
{
return
h_;}
121
int
d
()
const
{
return
d_;}
126
int
ld
()
const
{
return
ld_;}
133
int
count
()
const
{
return
count_;}
138
const
char
*
const
*
data
()
const
{
return
data_;}
139
int
fail();
140
Fl_Image
(
int
W,
int
H,
int
D);
141
virtual
~
Fl_Image
();
142
virtual
Fl_Image
*copy(
int
W,
int
H);
150
Fl_Image
*
copy
() {
return
copy
(w(), h()); }
151
virtual
void
color_average(
Fl_Color
c,
float
i);
160
void
inactive
() { color_average(FL_GRAY, .33f); }
161
virtual
void
desaturate();
162
virtual
void
label(
Fl_Widget
*w);
163
virtual
void
label(
Fl_Menu_Item
*m);
175
virtual
void
draw(
int
X,
int
Y,
int
W,
int
H,
int
cx=0,
int
cy=0);
// platform dependent
180
void
draw
(
int
X,
int
Y) {
draw
(X, Y, w(), h(), 0, 0);}
// platform dependent
181
virtual
void
uncache();
182
183
// set RGB image scaling method
184
static
void
RGB_scaling(
Fl_RGB_Scaling
);
185
186
// get RGB image scaling method
187
static
Fl_RGB_Scaling
RGB_scaling();
188
};
189
190
202
class
FL_EXPORT
Fl_RGB_Image
:
public
Fl_Image
{
203
friend
class
Fl_Quartz_Graphics_Driver
;
204
friend
class
Fl_GDI_Graphics_Driver
;
205
friend
class
Fl_GDI_Printer_Graphics_Driver
;
206
friend
class
Fl_Xlib_Graphics_Driver
;
207
static
size_t
max_size_;
208
public
:
209
212
const
uchar
*
array
;
215
int
alloc_array
;
216
217
private
:
218
219
#if defined(__APPLE__) || defined(WIN32)
220
void
*id_;
// for internal use
221
void
*mask_;
// for internal use (mask bitmap)
222
#else
223
unsigned
id_;
// for internal use
224
unsigned
mask_;
// for internal use (mask bitmap)
225
#endif // __APPLE__ || WIN32
226
227
public
:
228
229
Fl_RGB_Image
(
const
uchar
*bits,
int
W,
int
H,
int
D=3,
int
LD=0);
230
Fl_RGB_Image
(
const
Fl_Pixmap
*pxm,
Fl_Color
bg=FL_GRAY);
231
virtual
~
Fl_RGB_Image
();
232
virtual
Fl_Image
*
copy
(
int
W,
int
H);
233
Fl_Image
*
copy
() {
return
copy
(
w
(),
h
()); }
234
virtual
void
color_average
(
Fl_Color
c,
float
i);
235
virtual
void
desaturate
();
236
virtual
void
draw
(
int
X,
int
Y,
int
W,
int
H,
int
cx=0,
int
cy=0);
237
void
draw
(
int
X,
int
Y) {
draw
(X, Y,
w
(),
h
(), 0, 0);}
238
virtual
void
label
(
Fl_Widget
*w);
239
virtual
void
label
(
Fl_Menu_Item
*m);
240
virtual
void
uncache
();
250
static
void
max_size
(
size_t
size
) { max_size_ =
size
;}
255
static
size_t
max_size
() {
return
max_size_;}
256
};
257
258
#endif // !Fl_Image_H
259
260
//
261
// End of "$Id$".
262
//
© 1998-2016 by Bill Spitzak and others.