diff options
| author | nyamatongwe <unknown> | 2013-05-02 17:40:29 +1000 |
|---|---|---|
| committer | nyamatongwe <unknown> | 2013-05-02 17:40:29 +1000 |
| commit | 516c6ae7a1ce3fbef7e6dca0f81d5273e7cde668 (patch) | |
| tree | 37b3c5dcdcdfcb2fdb7fb8a25f6c99ba15f0b17e /src/XPM.h | |
| parent | 92c16e3c4faa73974735c00b7cef99ae62416ad1 (diff) | |
| download | scintilla-mirror-516c6ae7a1ce3fbef7e6dca0f81d5273e7cde668.tar.gz | |
Simplifying XPM code and avoiding bare allocations.
Diffstat (limited to 'src/XPM.h')
| -rw-r--r-- | src/XPM.h | 19 |
1 files changed, 6 insertions, 13 deletions
@@ -1,6 +1,6 @@ // Scintilla source code edit control /** @file XPM.h - ** Define a class that holds data in the X Pixmap (XPM) format. + ** Define a classes to hold image data in the X Pixmap (XPM) and RGBA formats. **/ // Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org> // The License.txt file describes the conditions under which this software may be distributed. @@ -16,19 +16,14 @@ namespace Scintilla { * Hold a pixmap in XPM format. */ class XPM { - int pid; // Assigned by container int height; int width; int nColours; - char *data; + std::vector<unsigned char> pixels; + ColourDesired colourCodeTable[256]; char codeTransparent; - char *codes; - ColourDesired *colours; - ColourDesired ColourDesiredFromCode(int ch) const; ColourDesired ColourFromCode(int ch) const; void FillRun(Surface *surface, int code, int startX, int y, int x); - char **lines; - ColourDesired *colourCodeTable[256]; public: XPM(const char *textForm); XPM(const char *const *linesForm); @@ -38,17 +33,15 @@ public: void Clear(); /// Decompose image into runs and use FillRectangle for each run void Draw(Surface *surface, PRectangle &rc); - char **InLinesForm() { return lines; } - void SetId(int pid_) { pid = pid_; } - int GetId() const { return pid; } int GetHeight() const { return height; } int GetWidth() const { return width; } void PixelAt(int x, int y, ColourDesired &colour, bool &transparent) const; - static const char **LinesFormFromTextForm(const char *textForm); +private: + static std::vector<const char *>LinesFormFromTextForm(const char *textForm); }; /** - * An translucent image stoed as a sequence of RGBA bytes. + * A translucent image stored as a sequence of RGBA bytes. */ class RGBAImage { // Private so RGBAImage objects can not be copied |
