diff --git a/Libraries/LibHTML/Layout/LayoutNode.h b/Libraries/LibHTML/Layout/LayoutNode.h index b13d4c5500..507c14c2fe 100644 --- a/Libraries/LibHTML/Layout/LayoutNode.h +++ b/Libraries/LibHTML/Layout/LayoutNode.h @@ -50,6 +50,9 @@ public: virtual bool is_block() const { return false; } virtual bool is_replaced() const { return false; } virtual bool is_box() const { return false; } + virtual bool is_table() const { return false; } + virtual bool is_table_row() const { return false; } + virtual bool is_table_cell() const { return false; } bool has_style() const { return m_has_style; } bool is_inline() const { return m_inline; } diff --git a/Libraries/LibHTML/Layout/LayoutTable.h b/Libraries/LibHTML/Layout/LayoutTable.h index db7d55655e..e5cab92c39 100644 --- a/Libraries/LibHTML/Layout/LayoutTable.h +++ b/Libraries/LibHTML/Layout/LayoutTable.h @@ -10,5 +10,12 @@ public: virtual void layout() override; private: + virtual bool is_table() const override { return true; } virtual const char* class_name() const override { return "LayoutTable"; } }; + +template<> +inline bool is(const LayoutNode& node) +{ + return node.is_table(); +} diff --git a/Libraries/LibHTML/Layout/LayoutTableCell.h b/Libraries/LibHTML/Layout/LayoutTableCell.h index 0616a987a8..3334f31cda 100644 --- a/Libraries/LibHTML/Layout/LayoutTableCell.h +++ b/Libraries/LibHTML/Layout/LayoutTableCell.h @@ -8,5 +8,12 @@ public: virtual ~LayoutTableCell() override; private: + virtual bool is_table_cell() const override { return true; } virtual const char* class_name() const override { return "LayoutTableCell"; } }; + +template<> +inline bool is(const LayoutNode& node) +{ + return node.is_table_cell(); +} diff --git a/Libraries/LibHTML/Layout/LayoutTableRow.h b/Libraries/LibHTML/Layout/LayoutTableRow.h index d29cead338..4da426de36 100644 --- a/Libraries/LibHTML/Layout/LayoutTableRow.h +++ b/Libraries/LibHTML/Layout/LayoutTableRow.h @@ -10,5 +10,12 @@ public: virtual void layout() override; private: + virtual bool is_table_row() const override { return true; } virtual const char* class_name() const override { return "LayoutTableRow"; } }; + +template<> +inline bool is(const LayoutNode& node) +{ + return node.is_table_row(); +}