//
// Created by AmirS on 26.04.2025.
//

#ifndef UIELEMENT_H
#define UIELEMENT_H

#include <QXmlStreamReader>

class UiElement {
public:
    explicit UiElement(int x1 = 0, int y1 = 0, int x2 = 0, int y2 = 0,
                       QString text = "", QString className = "", bool clickable = false);

    [[nodiscard]] int x1() const { return m_x1; }
    [[nodiscard]] int y1() const { return m_y1; }
    [[nodiscard]] int x2() const { return m_x2; }
    [[nodiscard]] int y2() const { return m_y2; }
    [[nodiscard]] QString text() const { return m_text; }
    [[nodiscard]] QString className() const { return m_className; }
    [[nodiscard]] bool isClickable() const { return m_clickable; }

    static UiElement fromXmlNode(const QXmlStreamReader &xmlReader);

private:
    int m_x1, m_y1, m_x2, m_y2;
    QString m_text;
    QString m_className;
    bool m_clickable;
};

#endif // UIELEMENT_H
