LibGUI: Expand GModelIndex a bit, adding internal data and model pointers.

This will be useful for implementing more complicated models.
This commit is contained in:
Andreas Kling 2019-03-29 04:58:15 +01:00
commit d02238af48
Notes: sideshowbarker 2024-07-19 14:54:19 +09:00
10 changed files with 94 additions and 34 deletions

View file

@ -1,9 +1,44 @@
#include <LibGUI/GTreeView.h>
#include <LibGUI/GPainter.h>
class TestModel : public GModel {
public:
static Retained<TestModel> create() { return adopt(*new TestModel); }
virtual int row_count(const GModelIndex& = GModelIndex()) const;
virtual int column_count(const GModelIndex& = GModelIndex()) const;
virtual GVariant data(const GModelIndex&, Role = Role::Display) const;
virtual void update();
virtual ColumnMetadata column_metadata(int) const { return { 100 }; }
};
int TestModel::row_count(const GModelIndex& index) const
{
return 0;
}
int TestModel::column_count(const GModelIndex&) const
{
return 1;
}
void TestModel::update()
{
}
GVariant TestModel::data(const GModelIndex&, Role) const
{
return { };
}
GTreeView::GTreeView(GWidget* parent)
: GAbstractView(parent)
{
set_frame_shape(GFrame::Shape::Container);
set_frame_shadow(GFrame::Shadow::Sunken);
set_frame_thickness(2);
set_model(TestModel::create());
}
GTreeView::~GTreeView()