X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgraphics%2FGraphicsImage.h;h=6722b87bc03f20637a8450dd7732b58ae5d5c69b;hb=38c2cde0d8695ac5287bae218c4a33a2acf18ef8;hp=50eabd25e25438e60e8a394c50d529241f7c1b5b;hpb=607ad8d3a778a23013f5c5a9382e9af3cb64350d;p=lyx.git diff --git a/src/graphics/GraphicsImage.h b/src/graphics/GraphicsImage.h index 50eabd25e2..6722b87bc0 100644 --- a/src/graphics/GraphicsImage.h +++ b/src/graphics/GraphicsImage.h @@ -1,104 +1,72 @@ // -*- C++ -*- /** - * \file GraphicsImage.h - * Copyright 2002 the LyX Team - * Read the file COPYING + * \file GraphicsImage.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * \author Baruch Even - * \author Angus Leeming + * \author Baruch Even + * \author Angus Leeming * - * An abstract base class for the images themselves. - * Allows the user to retrieve the pixmap, once loaded and to issue commands - * to modify it. + * Full author contact details are available in file CREDITS. * - * The signals newImage and loadableFormats are connected to the approriate - * derived classes elsewhere, allowing the graphics cache to access them - * without knowing anything about their instantiation. + * An abstract base class for the images themselves. + * Allows the user to retrieve the pixmap, once loaded and to issue commands + * to modify it. * - * The loading process can be asynchronous, but cropping, rotating and - * scaling block execution. + * The boost::functions newImage and loadableFormats are connected to the + * appropriate derived classes elsewhere, allowing the graphics cache to + * access them without knowing anything about their instantiation. + * + * The loading process can be asynchronous, but cropping, rotating and + * scaling block execution. */ #ifndef GRAPHICSIMAGE_H #define GRAPHICSIMAGE_H -#include "GraphicsTypes.h" -#include "LString.h" -#include -#include -#include -#include -#include +namespace lyx { -#ifdef __GNUG__ -#pragma interface -#endif +namespace support { class FileName; } -namespace grfx { +namespace graphics { -class GParams; +class Params; -class GImage -{ +class Image { public: - /// A list of supported formats. - typedef std::vector FormatList; - /** This will be connected to a function that will return whichever - * derived class we desire. - */ - static SigC::Signal0 newImage; - - /// Return the list of loadable formats. - static SigC::Signal0 loadableFormats; - /// - virtual ~GImage() {} + virtual ~Image() {} /// Create a copy - virtual GImage * clone() const = 0; - - /// - virtual Pixmap getPixmap() const = 0; + virtual Image * clone() const = 0; /// Get the image width - virtual unsigned int getWidth() const = 0; + virtual unsigned int width() const = 0; /// Get the image height - virtual unsigned int getHeight() const = 0; + virtual unsigned int height() const = 0; - /** At the end of the loading or modification process, return the new - * image by emitting this signal */ - typedef SigC::Signal1 SignalType; - /// - typedef boost::shared_ptr SignalTypePtr; + /// Is the image drawable ? + virtual bool isDrawable() const = 0; - /// Start loading the image file. - virtual void load(string const & filename, SignalTypePtr) = 0; + /** Start loading the image file. + * The caller should expect this process to be asynchronous and + * so should connect to the "finished" signal above. + */ + virtual bool load(support::FileName const & filename) = 0; /** Generate the pixmap. * Uses the params to decide on color, grayscale etc. * Returns true if the pixmap is created. */ - virtual bool setPixmap(GParams const & params) = 0; - - /// Clip the image using params. - virtual void clip(GParams const & params) = 0; - - /// Rotate the image using params. - virtual void rotate(GParams const & params) = 0; - - /// Scale the image using params. - virtual void scale(GParams const & params) = 0; - -protected: - /** Uses the params to ascertain the dimensions of the scaled image. - * Returned as make_pair(width, height). - * If something geso wrong, returns make_pair(getWidth(), getHeight()) - */ - std::pair - getScaledDimensions(GParams const & params) const; + virtual bool setPixmap(Params const & params) = 0; }; -} // namespace grfx +/// Only way to create a new Image. +/// Implemented in the frontend. +Image * newImage(); + +} // namespace graphics +} // namespace lyx #endif // GRAPHICSIMAGE_H