3 * \file GraphicsImage.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
8 * \author Angus Leeming
10 * Full author contact details are available in file CREDITS.
12 * An abstract base class for the images themselves.
13 * Allows the user to retrieve the pixmap, once loaded and to issue commands
16 * The boost::functions newImage and loadableFormats are connected to the
17 * appropriate derived classes elsewhere, allowing the graphics cache to
18 * access them without knowing anything about their instantiation.
20 * The loading process can be asynchronous, but cropping, rotating and
21 * scaling block execution.
24 #ifndef GRAPHICSIMAGE_H
25 #define GRAPHICSIMAGE_H
27 #include "Dimension.h"
31 namespace support
{ class FileName
; }
43 virtual Image
* clone() const = 0;
45 /// Get the image width
46 virtual unsigned int width() const = 0;
48 /// Get the image height
49 virtual unsigned int height() const = 0;
51 /// Is the image drawable ?
52 virtual bool isDrawable() const = 0;
54 /** Start loading the image file.
55 * The caller should expect this process to be asynchronous and
56 * so should connect to the "finished" signal above.
58 virtual bool load(support::FileName
const & filename
) = 0;
60 /** Generate the pixmap.
61 * Uses the params to decide on color, grayscale etc.
62 * Returns true if the pixmap is created.
64 virtual bool setPixmap(Params
const & params
) = 0;
67 /// Only way to create a new Image.
68 /// Implemented in the frontend.
71 } // namespace graphics
74 #endif // GRAPHICSIMAGE_H