]> git.tdb.fi Git - libs/gltk.git/commitdiff
Remove the Table widget
authorMikko Rasa <tdb@tdb.fi>
Fri, 14 Jun 2013 16:09:46 +0000 (19:09 +0300)
committerMikko Rasa <tdb@tdb.fi>
Fri, 14 Jun 2013 17:06:50 +0000 (20:06 +0300)
The layout system made it rather useless, and it suffered from similar
styling problems as List did before widget-based items.

source/panel.cpp
source/table.cpp [deleted file]
source/table.h [deleted file]

index c7b1574979d7883d8f03c44816dc6152eb1daf4a..389e3d9be729485fc4c16db0ee4dca3237a5f3ed 100644 (file)
@@ -10,7 +10,6 @@
 #include "list.h"
 #include "panel.h"
 #include "part.h"
-#include "table.h"
 #include "toggle.h"
 #include "vslider.h"
 
@@ -90,7 +89,6 @@ Panel::Loader::Loader(Panel &p, map<string, Widget *> &m):
        add("label",     &Loader::child<Label>);
        add("list",      &Loader::child<List>);
        add("panel",     &Loader::panel);
-       add("table",     &Loader::child<Table>);
        add("toggle",    &Loader::child<Toggle>);
        add("vslider",   &Loader::child<VSlider>);
 }
diff --git a/source/table.cpp b/source/table.cpp
deleted file mode 100644 (file)
index 32db6c4..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-#include <stdexcept>
-#include <msp/gl/matrix.h>
-#include <msp/gl/meshbuilder.h>
-#include "part.h"
-#include "style.h"
-#include "table.h"
-
-using namespace std;
-
-namespace Msp {
-namespace GLtk {
-
-Table::Table():
-       rows(1),
-       columns(1),
-       data(1),
-       col_w(1)
-{
-       focusable = false;
-}
-
-void Table::set_rows(unsigned r)
-{
-       rows = r;
-       data.resize(rows*columns);
-}
-
-void Table::set_columns(unsigned c)
-{
-       vector<string> new_data(rows*c);
-       for(unsigned i=0; i<rows; ++i)
-               for(unsigned j=0; j<min(c, columns); ++j)
-                       new_data[i*c+j].swap(data[i*columns+j]);
-       data.swap(new_data);
-       columns = c;
-
-       col_w.resize(columns);
-}
-
-void Table::set_column_width(unsigned c, unsigned w)
-{
-       if(c>=columns)
-               throw invalid_argument("Table::set_column_width");
-       col_w[c] = w;
-}
-
-void Table::set_cell_text(unsigned r, unsigned c, const string &t)
-{
-       if(r>=rows || c>=columns)
-               throw out_of_range("Table::set_cell_text");
-
-       data[r*columns+c] = t;
-}
-
-void Table::rebuild_special(const Part &part, CachedPart &cache)
-{
-       if(part.get_name()=="cells")
-       {
-               const GL::Font &font = style->get_font();
-               float font_size = style->get_font_size();
-
-               unsigned free_width = geom.w;
-               for(unsigned i=0; i<columns; ++i)
-                       free_width -= col_w[i];
-
-               Geometry cgeom;
-               cgeom.h = geom.h/rows;
-               cgeom.y = geom.h-cgeom.h;
-
-               cache.texture = &font.get_texture();
-               cache.clear_mesh();
-
-               GL::MeshBuilder bld(*cache.mesh);
-               for(unsigned i=0; i<rows; ++i)
-               {
-                       cgeom.x = 0;
-                       for(unsigned j=0; j<columns; ++j)
-                       {
-                               if(col_w[j])
-                                       cgeom.w = col_w[j];
-                               else
-                                       cgeom.w = free_width/columns;
-
-                               const string &text = data[i*columns+j];
-                               Geometry rgeom;
-                               rgeom.x = cgeom.x;
-                               rgeom.y = cgeom.y;
-                               rgeom.w = static_cast<unsigned>(font.get_string_width(text)*font_size);
-                               rgeom.h = static_cast<unsigned>((font.get_ascent()-font.get_descent())*font_size);
-
-                               part.get_alignment().apply(rgeom, cgeom, part.get_margin());
-
-                               GL::MatrixStack::Push _push(bld.matrix());
-                               bld.matrix() *= GL::Matrix::translation(rgeom.x, rgeom.y, 0);
-                               bld.matrix() *= GL::Matrix::scaling(font_size);
-                               font.draw_string(text);
-
-                               cgeom.x += cgeom.w;
-                       }
-
-                       cgeom.y -= cgeom.h;
-               }
-       }
-}
-
-void Table::on_style_change()
-{
-}
-
-
-Table::Loader::Loader(Table &t):
-       Widget::Loader(t)
-{
-       add("cell_text",    &Loader::cell_text);
-       add("column_width", &Loader::column_width);
-       add("columns",      &Loader::columns);
-       add("rows",         &Loader::rows);
-}
-
-void Table::Loader::cell_text(unsigned r, unsigned c, const string &t)
-{
-       static_cast<Table &>(obj).set_cell_text(r, c, t);
-}
-
-void Table::Loader::column_width(unsigned c, unsigned w)
-{
-       static_cast<Table &>(obj).set_column_width(c, w);
-}
-
-void Table::Loader::columns(unsigned c)
-{
-       static_cast<Table &>(obj).set_columns(c);
-}
-
-void Table::Loader::rows(unsigned r)
-{
-       static_cast<Table &>(obj).set_rows(r);
-}
-
-} // namespace GLtk
-} // namespace Msp
diff --git a/source/table.h b/source/table.h
deleted file mode 100644 (file)
index 0727144..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef MSP_GLTK_TABLE_H_
-#define MSP_GLTK_TABLE_H_
-
-#include <string>
-#include <vector>
-#include "widget.h"
-
-namespace Msp {
-namespace GLtk {
-
-class Table: public Widget
-{
-public:
-       class Loader: public Widget::Loader
-       {
-       public:
-               Loader(Table &);
-       private:
-               void cell_text(unsigned, unsigned, const std::string &);
-               void column_width(unsigned, unsigned);
-               void columns(unsigned);
-               void rows(unsigned);
-       };
-
-private:
-       unsigned rows;
-       unsigned columns;
-       std::vector<std::string> data;
-       std::vector<unsigned> col_w;
-
-public:
-       Table();
-
-       void set_rows(unsigned);
-       void set_columns(unsigned);
-       unsigned get_rows() const { return rows; }
-       unsigned get_columns() const { return columns; }
-
-       void set_column_width(unsigned, unsigned);
-       void set_cell_text(unsigned, unsigned, const std::string &);
-private:
-       virtual const char *get_class() const { return "table"; }
-
-       virtual void rebuild_special(const Part &, CachedPart &);
-       virtual void on_style_change();
-};
-
-} // namespace GLtk
-} // namespace Msp
-
-#endif