#ifndef __lib_gui_elabel_h #define __lib_gui_elabel_h #include class eLabel: public eWidget { public: eLabel(eWidget *parent, int markedPos = -1); void setText(const std::string &string); void setMarkedPos(int markedPos); void setFont(gFont *font); gFont* getFont(); enum { alignLeft, alignTop=alignLeft, alignCenter, alignRight, alignBottom=alignRight, alignBlock }; void setVAlign(int align); void setHAlign(int align); void setForegroundColor(const gRGB &col); void setShadowColor(const gRGB &col); void setShadowOffset(const ePoint &offset); void setNoWrap(int nowrap); void clearForegroundColor(); eSize calculateSize(); protected: ePtr m_font; int m_valign, m_halign; std::string m_text; int event(int event, void *data=0, void *data2=0); int m_pos; private: int m_have_foreground_color, m_have_shadow_color; gRGB m_foreground_color, m_shadow_color; ePoint m_shadow_offset; int m_nowrap; enum eLabelEvent { evtChangedText = evtUserWidget, evtChangedFont, evtChangedAlignment, evtChangedMarkedPos }; }; #endif