You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegraphics/kcoloredit/palette.h

103 lines
3.3 KiB

/***************************************************************************
palette.h - description
-------------------
begin : Sat Jul 8 2000
copyright : (C) 2000 by Artur Rataj
email : art@zeus.polsl.gliwice.pl
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef PALETTE_H
#define PALETTE_H
#include <tqstring.h>
#include <tqtextstream.h>
#include <tqfile.h>
#include "color.h"
/**This class holds a palette.
*@author Artur Rataj
*/
class Palette {
public:
/** Constructs an empty palette */
Palette();
/** The copy constructor */
Palette(const Palette& palette);
~Palette();
/** @return A list of KDE palettes */
static TQStringList kdePalettes();
/** sets palette name */
void setName(const TQString& name);
/** @return palette name */
const TQString& name() const;
/** inserts a color at a given position */
void insert(const int index, Color* const color);
/** appends a color */
void append(Color* const color);
/** removes a color at index */
void remove(const int index);
/** @return the number of colors */
int length() const;
/** @return color at index */
Color* color(const int index);
/** @return a copy of palette at index, of length length */
Palette copy(const int index, const int length);
/** cuts a palette at index, of length length
* @return a palette that has been cut out
*/
Palette cut(const int index, const int length);
/** pastes a palette at index */
void paste(const int index, Palette& palette);
/** Loads a palette from a text stream
* @return whether the load was succesfull
*/
bool load(TQTextStream& stream, bool loadName = true);
/** Loads a palette from a file.
* If loadName is true, palette name is expected.
* @return whether the load was succesfull
*/
bool load(const TQString& fileName);
/** Saves a palette into a text stream.
* If file is given, it is checked for IO errors.
* If saveName is true, palette name is saved.
* @return whether save was succesfull
*/
bool save(TQTextStream& stream, const TQFile* file = 0, bool saveName = true);
/** Saves a palette to a file
* @return whether save was succesfull
*/
bool save(const TQString& fileName);
/** Deletes contents of the palette */
void deleteContents();
/** @return A possible error description from the last unsuccessfull
* IO operation
*/
const TQString& errorString() const;
private:
/** The palette name */
TQString m_name;
private:
/** Initialization method called by constructors */
void init();
protected:
/** A list of palette colors */
TQPtrList<Color> colors;
/** An IO error description */
TQString m_errorString;
};
#endif