HTMLBlinkElement.cpp 666 B

123456789101112131415161718192021222324252627
  1. #include <LibCore/CTimer.h>
  2. #include <LibHTML/CSS/StyleProperties.h>
  3. #include <LibHTML/CSS/StyleValue.h>
  4. #include <LibHTML/DOM/HTMLBlinkElement.h>
  5. #include <LibHTML/Layout/LayoutNode.h>
  6. HTMLBlinkElement::HTMLBlinkElement(Document& document, const String& tag_name)
  7. : HTMLElement(document, tag_name)
  8. , m_timer(CTimer::construct())
  9. {
  10. m_timer->set_interval(500);
  11. m_timer->on_timeout = [this] { blink(); };
  12. m_timer->start();
  13. }
  14. HTMLBlinkElement::~HTMLBlinkElement()
  15. {
  16. }
  17. void HTMLBlinkElement::blink()
  18. {
  19. if (!layout_node())
  20. return;
  21. layout_node()->set_visible(!layout_node()->is_visible());
  22. layout_node()->set_needs_display();
  23. }