/cadxcore/widgets/observers/iobservadormarcadoarea.h

https://github.com/gerddie/ginkgocadx · C Header · 110 lines · 72 code · 18 blank · 20 comment · 8 complexity · 0f1780f54bd595138ac09c92ac403470 MD5 · raw file

  1. /*
  2. * Ginkgo CADx Project
  3. *
  4. * Copyright (c) 2015-2016 Gert Wollny
  5. * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved.
  6. *
  7. * Ginkgo CADx is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU Lesser General Public License as
  9. * published by the Free Software Foundation; version 3.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser Public License
  17. * along with Ginkgo CADx; if not, see <http://www.gnu.org/licenses/>.
  18. *
  19. */
  20. #pragma once
  21. #include <stddef.h>
  22. #include <api/ievento.h>
  23. namespace GNC
  24. {
  25. namespace GCS
  26. {
  27. namespace Widgets
  28. {
  29. class WMarcadoArea;
  30. namespace Observadores
  31. {
  32. /* Observador especifico de la herramienta lazo */
  33. class IObservadorMarcadoArea
  34. {
  35. public:
  36. virtual ~IObservadorMarcadoArea() {}
  37. virtual void OnPoligonoCreado(GNC::GCS::Widgets::WMarcadoArea* pPoligono) = 0;
  38. virtual void OnPoligonoModificado(GNC::GCS::Widgets::WMarcadoArea* pPoligono) = 0;
  39. virtual void OnPoligonoDestruido(GNC::GCS::Widgets::WMarcadoArea* pPoligono) = 0;
  40. virtual void OnKeyEvent(GNC::GCS::Events::EventoTeclado & evt) = 0;
  41. };
  42. }
  43. namespace Notificadores
  44. {
  45. class INotificadorMarcadoArea
  46. {
  47. protected:
  48. GNC::GCS::Widgets::Observadores::IObservadorMarcadoArea* m_pObservadorMarcado;
  49. public:
  50. INotificadorMarcadoArea()
  51. {
  52. m_pObservadorMarcado = NULL;
  53. }
  54. INotificadorMarcadoArea(GNC::GCS::Widgets::Observadores::IObservadorMarcadoArea* pObservador)
  55. {
  56. m_pObservadorMarcado = pObservador;
  57. }
  58. virtual ~INotificadorMarcadoArea() {}
  59. public:
  60. void SetObservador(GNC::GCS::Widgets::Observadores::IObservadorMarcadoArea* pObservador)
  61. {
  62. m_pObservadorMarcado = pObservador;
  63. }
  64. virtual void NotificarCreacion(WMarcadoArea* pWidget)
  65. {
  66. if (m_pObservadorMarcado != NULL) {
  67. m_pObservadorMarcado->OnPoligonoCreado(pWidget);
  68. }
  69. }
  70. virtual void NotificarModificacion(WMarcadoArea* pWidget)
  71. {
  72. if (m_pObservadorMarcado != NULL) {
  73. m_pObservadorMarcado->OnPoligonoModificado(pWidget);
  74. }
  75. }
  76. virtual void NotificarDestruccion(WMarcadoArea* pWidget)
  77. {
  78. if (m_pObservadorMarcado != NULL) {
  79. m_pObservadorMarcado->OnPoligonoDestruido(pWidget);
  80. }
  81. }
  82. virtual void NotificarKeyEvent(GNC::GCS::Events::EventoTeclado& evt)
  83. {
  84. if (m_pObservadorMarcado != NULL) {
  85. m_pObservadorMarcado->OnKeyEvent(evt);
  86. }
  87. }
  88. };
  89. }
  90. }
  91. }
  92. }