KSGSMausEreignis.cpp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #include "KSGSMausEreignis.h"
  2. #include "KSGSTyp.h"
  3. #include "../Error/Error.h"
  4. #include "KSGSInt.h"
  5. #include "KSGSBool.h"
  6. using namespace KSGScript;
  7. // Inhalt der KSGSMausEreignisKlasse Klasse aus KSGSMausEreignis.h
  8. // Konstruktor
  9. KSGSMausEreignisKlasse::KSGSMausEreignisKlasse( KSGScriptProcessor *zObj, MausEreignis std )
  10. : KSGSKlasseInstanz( KSGS_MAUSEREIGNIS, 0, 0, zObj )
  11. {
  12. val = std;
  13. }
  14. // Destruktor
  15. KSGSMausEreignisKlasse::~KSGSMausEreignisKlasse()
  16. {}
  17. // nicht constant
  18. KSGSVariable *KSGSMausEreignisKlasse::startFunktion( int id, bool access, RCArray< KSGSVariable > *parameter )
  19. {
  20. KSGSVariable *ret = 0;
  21. switch( id )
  22. {
  23. case 0: // void setId( int id )
  24. if( parameter->getEintragAnzahl() < 1 )
  25. error( 20, {}, obj );
  26. val.id = parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0;
  27. break;
  28. case 1: // void setMx( int mx )
  29. if( parameter->getEintragAnzahl() < 1 )
  30. error( 20, {}, obj );
  31. val.mx = parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0;
  32. break;
  33. case 2: // void setMy( int my )
  34. if( parameter->getEintragAnzahl() < 1 )
  35. error( 20, {}, obj );
  36. val.my = parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0;
  37. break;
  38. case 3: // void setVerarbeitet( bool verarbeitet )
  39. if( parameter->getEintragAnzahl() < 1 )
  40. error( 20, {}, obj );
  41. val.verarbeitet = parameter->z( 0 ) ? parameter->z( 0 )->getBool() : 0;
  42. break;
  43. case 4: // void setInsideParent( bool verarbeitet )
  44. if( parameter->getEintragAnzahl() < 1 )
  45. error( 20, {}, obj );
  46. val.insideParent = parameter->z( 0 ) ? parameter->z( 0 )->getBool() : 0;
  47. break;
  48. default: // unbekannt
  49. error( 19, {}, obj );
  50. break;
  51. }
  52. parameter->release();
  53. return ret;
  54. }
  55. void KSGSMausEreignisKlasse::set( MausEreignis &me )
  56. {
  57. val = me;
  58. }
  59. KSGSVariable *KSGSMausEreignisKlasse::doOperator( int id, KSGSVariable *rechts )
  60. {
  61. if( !rechts )
  62. {
  63. error( 3, {}, obj );
  64. return 0;
  65. }
  66. KSGSVariable *ret = 0;
  67. switch( id )
  68. {
  69. case KSGS_O_SET:
  70. if( 1 )
  71. {
  72. val = rechts->getMausEreignis();
  73. ret = dynamic_cast<KSGSVariable *>( getThis() );
  74. }
  75. break;
  76. }
  77. if( !ret )
  78. error( 21, {}, obj );
  79. if( rechts )
  80. rechts->release();
  81. return ret;
  82. }
  83. // constant
  84. KSGSVariable *KSGSMausEreignisKlasse::getVariable( int id, bool zugriff ) const
  85. {
  86. KSGSVariable *ret = 0;
  87. switch( id )
  88. {
  89. case 0: // int id
  90. ret = new KSGSIntKlasse( obj, val.id );
  91. break;
  92. case 1: // int mx
  93. ret = new KSGSIntKlasse( obj, val.mx );
  94. break;
  95. case 2: // int my
  96. ret = new KSGSIntKlasse( obj, val.my );
  97. break;
  98. case 3: // bool verarbeitet
  99. ret = new KSGSBoolKlasse( obj, val.verarbeitet );
  100. break;
  101. case 4: // bool insideParent
  102. ret = new KSGSBoolKlasse( obj, val.insideParent );
  103. break;
  104. case 5: // int originalX
  105. ret = new KSGSIntKlasse( obj, val.originalX );
  106. break;
  107. case 6: // int originalY
  108. ret = new KSGSIntKlasse( obj, val.originalY );
  109. break;
  110. }
  111. if( !ret )
  112. error( 17, {}, obj );
  113. return ret;
  114. }
  115. MausEreignis KSGSMausEreignisKlasse::getVal() const
  116. {
  117. return val;
  118. }