+#include <msp/debug/demangle.h>
#include <msp/gl/matrix.h>
#include <msp/gl/meshbuilder.h>
#include "graphic.h"
namespace Msp {
namespace GLtk {
+incompatible_data::incompatible_data(const type_info &ti):
+ logic_error("expected "+Debug::demangle(ti.name()))
+{ }
+
+
List::List():
data(new BasicListData<string>),
own_data(true)
void List::init()
{
+ item_factory = 0;
sel_index = -1;
first = 0;
max_scroll = 0;
List::~List()
{
+ delete item_factory;
delete observer;
if(own_data)
delete data;
void List::set_data(ListData &d)
{
+ if(item_factory)
+ item_factory->set_data(d);
+
delete observer;
if(own_data)
delete data;
List::Item *List::create_item(unsigned index)
{
- return new BasicItem(data->get_string(index));
+ if(item_factory)
+ return item_factory->create_item(index);
+ else
+ return new BasicItem(data->get_string(index));
}
void List::set_view_size(unsigned s)