mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 13:06:59 -04:00
b79f52db84
Major changes: - when rotating, the top left corner of the rectangle stays in place. - ValueViewers get a dc that is pre-rotated/translated for them, i.e. (0,0) is the top-left of the viewer (with ValueViewer::getRotation). - moved 'angle' from individual Styles to the Style base class. - any rotation angle is now possible. angle is still an int for now. This warrants a version bump git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@782 0fc631ac-6414-0410-93d0-97cfa31319b6
50 lines
1.7 KiB
C++
50 lines
1.7 KiB
C++
//+----------------------------------------------------------------------------+
|
|
//| Description: Magic Set Editor - Program to make Magic (tm) cards |
|
|
//| Copyright: (C) 2001 - 2007 Twan van Laarhoven |
|
|
//| License: GNU General Public License 2 or later (see file COPYING) |
|
|
//+----------------------------------------------------------------------------+
|
|
|
|
#ifndef HEADER_RENDER_VALUE_IMAGE
|
|
#define HEADER_RENDER_VALUE_IMAGE
|
|
|
|
// ----------------------------------------------------------------------------- : Includes
|
|
|
|
#include <util/prec.hpp>
|
|
#include <render/value/viewer.hpp>
|
|
#include <data/field/image.hpp>
|
|
|
|
DECLARE_POINTER_TYPE(AlphaMask);
|
|
|
|
// ----------------------------------------------------------------------------- : ImageValueViewer
|
|
|
|
/// Viewer that displays an image value
|
|
class ImageValueViewer : public ValueViewer {
|
|
public:
|
|
DECLARE_VALUE_VIEWER(Image) : ValueViewer(parent,style) {}
|
|
|
|
virtual void draw(RotatedDC& dc);
|
|
|
|
virtual bool containsPoint(const RealPoint& p) const;
|
|
|
|
virtual void onValueChange();
|
|
virtual void onStyleChange(int);
|
|
|
|
private:
|
|
Bitmap bitmap; ///< Cached bitmap
|
|
RealSize size; ///< Size of cached bitmap
|
|
int angle; ///< Angle of cached bitmap
|
|
int is_default; ///< Is the default placeholder image used?
|
|
mutable AlphaMaskP alpha_mask;
|
|
|
|
void loadMask(const Rotation& rot) const;
|
|
|
|
/// Generate a placeholder image
|
|
static Bitmap imagePlaceholder(const Rotation& rot, UInt w, UInt h, const Image& background, bool editing);
|
|
|
|
/// Draws a border around the field
|
|
void drawFieldBorder(RotatedDC& dc);
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------- : EOF
|
|
#endif
|