2 * \file GraphicsImage.C
3 * Copyright 2002 the LyX Team
4 * Read the file COPYING
6 * \author Baruch Even <baruch.even@writeme.com>
7 * \author Angus Leeming <a.leeming@ic.ac.uk>
13 #pragma implementation
16 #include "GraphicsImage.h"
17 #include "GraphicsParams.h"
22 // This will be connected to a function that will return whichever
23 // whichever derived class we desire.
24 SigC::Signal0<ImagePtr> GImage::newImage;
26 /// Return the list of loadable formats.
27 SigC::Signal0<GImage::FormatList> GImage::loadableFormats;
29 std::pair<unsigned int, unsigned int>
30 GImage::getScaledDimensions(GParams const & params) const
32 if (params.scale == 0 && params.width == 0 && params.height == 0)
34 return std::make_pair(getWidth(), getHeight());
36 unsigned int width = 0;
37 unsigned int height = 0;
38 if (params.scale != 0) {
39 width = getWidth() * params.scale / 100.0;
40 height = getHeight() * params.scale / 100.0;
43 height = params.height;
46 width = height * getWidth() / getHeight();
47 } else if (height == 0) {
48 height = width * getHeight() / getWidth();
52 if (width == 0 || height == 0)
53 // Something is wrong!
54 return std::make_pair(getWidth(), getHeight());
56 return std::make_pair(width, height);