1 /*
2 ** Copyright 2002-2011, Double Precision Inc.
3 **
4 ** See COPYING for distribution information.
5 */
6 
7 #ifndef curseslabel_H
8 #define curseslabel_H
9 
10 #include "mycurses.H"
11 
12 ////////////////////////////////////////////////////////////////////////
13 //
14 // A plain, garden variety, label.  Centered, or right-aligned, perhaps.
15 //
16 // A lot of work, just for this
17 
18 class CursesLabel : public Curses {
19 
20 	std::u32string utext;
21 
22 	size_t w;
23 
24 	void setutext(const std::string &textArg);
25 
26 protected:
27 	Curses::CursesAttr attribute;
28 public:
29 	CursesLabel(CursesContainer *parent,
30 		    std::string textArg,
31 		    Curses::CursesAttr attributeArg=Curses::CursesAttr());
32 	~CursesLabel();
33 
34 	void setRow(int row);
35 	void setCol(int col);
36 	void setAlignment(Alignment alignment);
37 	void setAttribute(Curses::CursesAttr attr);
38 	virtual void setText(std::string textArg);
39 
40 	int getWidth() const;
41 	int getHeight() const;
42 
43 	void draw();
44 	void erase();
45 };
46 
47 #endif
48