KSGSMausEreignis.cpp 2.7 KB

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