#ifndef __STATEIMAGE_H__
#define __STATEIMAGE_H__

#include <glibmm/ustring.h>
#include <array>

class StateImage {
public:
    typedef enum {
        STATE_NORMAL = 0,
        STATE_PRESSED,
        STATE_HOVER,
        STATE_DISABLED,
        STATE_INVALID,
        STATE_MAX = STATE_INVALID
    } State;

    typedef std::array<Glib::ustring, STATE_MAX> PathArray;

public:
    explicit StateImage();

    StateImage(const StateImage& other);

    StateImage(const PathArray& stateImages);

    void setStateImage(State st, const Glib::ustring& imgpath);

    void setStateImages(const PathArray& stateImages);

    const PathArray& getStateImages();

    StateImage& operator=(const StateImage& other);

private:
    void initialize();

private:
    PathArray m_stateImages;
};

#endif  // __CF_STATEIMAGE_H__