]> git.tdb.fi Git - libs/gltk.git/blob - table.h
072714416fa6880132bdcb6ee7207d035b9c6eb2
[libs/gltk.git] / table.h
1 #ifndef MSP_GLTK_TABLE_H_
2 #define MSP_GLTK_TABLE_H_
3
4 #include <string>
5 #include <vector>
6 #include "widget.h"
7
8 namespace Msp {
9 namespace GLtk {
10
11 class Table: public Widget
12 {
13 public:
14         class Loader: public Widget::Loader
15         {
16         public:
17                 Loader(Table &);
18         private:
19                 void cell_text(unsigned, unsigned, const std::string &);
20                 void column_width(unsigned, unsigned);
21                 void columns(unsigned);
22                 void rows(unsigned);
23         };
24
25 private:
26         unsigned rows;
27         unsigned columns;
28         std::vector<std::string> data;
29         std::vector<unsigned> col_w;
30
31 public:
32         Table();
33
34         void set_rows(unsigned);
35         void set_columns(unsigned);
36         unsigned get_rows() const { return rows; }
37         unsigned get_columns() const { return columns; }
38
39         void set_column_width(unsigned, unsigned);
40         void set_cell_text(unsigned, unsigned, const std::string &);
41 private:
42         virtual const char *get_class() const { return "table"; }
43
44         virtual void rebuild_special(const Part &, CachedPart &);
45         virtual void on_style_change();
46 };
47
48 } // namespace GLtk
49 } // namespace Msp
50
51 #endif