ladybird/DevTools/HackStudio/WidgetTreeModel.h
Andreas Kling 2fea238675 HackStudio: Reflect widget selections in the form widget tree view
You can now manipulate the widget selection either by clicking and
dragging the widgets using the cursor tool, or by interacting with
the form widget tree view. :^)
2019-11-11 22:20:02 +01:00

25 lines
904 B
C++

#pragma once
#include <LibGUI/GModel.h>
#include <LibGUI/GPainter.h>
class WidgetTreeModel final : public GModel {
public:
static NonnullRefPtr<WidgetTreeModel> create(GWidget& root) { return adopt(*new WidgetTreeModel(root)); }
virtual ~WidgetTreeModel() override;
virtual int row_count(const GModelIndex& = GModelIndex()) const override;
virtual int column_count(const GModelIndex& = GModelIndex()) const override;
virtual GVariant data(const GModelIndex&, Role = Role::Display) const override;
virtual GModelIndex index(int row, int column, const GModelIndex& parent = GModelIndex()) const override;
virtual GModelIndex parent_index(const GModelIndex&) const override;
virtual void update() override;
GModelIndex index_for_widget(GWidget&) const;
private:
explicit WidgetTreeModel(GWidget&);
NonnullRefPtr<GWidget> m_root;
GIcon m_widget_icon;
};