Ressourcen.cpp 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. #include "Ressourcen.h"
  2. // Inhalt der RessourceBild Klasse aus Ressource.h
  3. // Konstruktor
  4. RessourceBild::RessourceBild()
  5. : ReferenceCounter()
  6. {
  7. name = new RCArray< Text >();
  8. bild = new RCArray< Bild >();
  9. anzahl = 0;
  10. }
  11. // Destruktor
  12. RessourceBild::~RessourceBild()
  13. {
  14. name->release();
  15. bild->release();
  16. }
  17. // nicht constant
  18. bool RessourceBild::add( Text *name, Bild *bild )
  19. {
  20. bool ret = add( name->getText(), bild );
  21. name->release();
  22. return ret;
  23. }
  24. bool RessourceBild::add( const char *name, Bild *bild )
  25. {
  26. if( hat( name ) )
  27. {
  28. bild->release();
  29. return 0;
  30. }
  31. this->name->add( new Text( name ), anzahl );
  32. this->bild->add( bild, anzahl );
  33. anzahl++;
  34. return 1;
  35. }
  36. bool RessourceBild::remove( Text *name )
  37. {
  38. bool ret = remove( name->getText() );
  39. name->release();
  40. return ret;
  41. }
  42. bool RessourceBild::remove( const char *name )
  43. {
  44. for( int i = 0; i < anzahl; i++ )
  45. {
  46. if( this->name->z( i )->istGleich( name ) )
  47. {
  48. this->name->remove( i );
  49. bild->remove( i );
  50. anzahl--;
  51. return 1;
  52. }
  53. }
  54. return 0;
  55. }
  56. void RessourceBild::reset()
  57. {
  58. for( int i = 0; i < anzahl; i++ )
  59. {
  60. name->remove( 0 );
  61. bild->remove( 0 );
  62. }
  63. anzahl = 0;
  64. }
  65. // constant
  66. bool RessourceBild::hat( Text *name )
  67. {
  68. bool ret = hat( name->getText() );
  69. name->release();
  70. return ret;
  71. }
  72. bool RessourceBild::hat( const char *name )
  73. {
  74. for( int i = 0; i < anzahl; i++ )
  75. {
  76. if( this->name->z( i )->istGleich( name ) )
  77. return 1;
  78. }
  79. return 0;
  80. }
  81. Bild *RessourceBild::get( Text *name )
  82. {
  83. Bild *ret = get( name->getText() );
  84. name->release();
  85. return ret;
  86. }
  87. Bild *RessourceBild::get( const char *name )
  88. {
  89. for( int i = 0; i < anzahl; i++ )
  90. {
  91. if( this->name->z( i )->istGleich( name ) )
  92. return this->bild->get( i );
  93. }
  94. return 0;
  95. }
  96. Bild *RessourceBild::z( Text *name )
  97. {
  98. Bild *ret = z( name->getText() );
  99. name->release();
  100. return ret;
  101. }
  102. Bild *RessourceBild::z( const char *name )
  103. {
  104. for( int i = 0; i < anzahl; i++ )
  105. {
  106. if( this->name->z( i )->istGleich( name ) )
  107. return this->bild->z( i );
  108. }
  109. return 0;
  110. }
  111. // Inhalt der RessourceSchrift Klasse aus Ressource.h
  112. // Konstruktor
  113. RessourceSchrift::RessourceSchrift()
  114. : ReferenceCounter()
  115. {
  116. name = new RCArray< Text >();
  117. schrift = new RCArray< Schrift >();
  118. anzahl = 0;
  119. }
  120. // Destruktor
  121. RessourceSchrift::~RessourceSchrift()
  122. {
  123. name->release();
  124. schrift->release();
  125. }
  126. // nicht constant
  127. bool RessourceSchrift::add( Text *name, Schrift *schrift )
  128. {
  129. bool ret = add( name->getText(), schrift );
  130. name->release();
  131. return ret;
  132. }
  133. bool RessourceSchrift::add( const char *name, Schrift *schrift )
  134. {
  135. if( hat( name ) )
  136. {
  137. schrift->release();
  138. return 0;
  139. }
  140. this->name->add( new Text( name ), anzahl );
  141. this->schrift->add( schrift, anzahl );
  142. anzahl++;
  143. return 1;
  144. }
  145. bool RessourceSchrift::remove( Text *name )
  146. {
  147. bool ret = remove( name->getText() );
  148. name->release();
  149. return ret;
  150. }
  151. bool RessourceSchrift::remove( const char *name )
  152. {
  153. for( int i = 0; i < anzahl; i++ )
  154. {
  155. if( this->name->z( i )->istGleich( name ) )
  156. {
  157. this->name->remove( i );
  158. schrift->remove( i );
  159. anzahl--;
  160. return 1;
  161. }
  162. }
  163. return 0;
  164. }
  165. void RessourceSchrift::reset()
  166. {
  167. for( int i = 0; i < anzahl; i++ )
  168. {
  169. name->remove( 0 );
  170. schrift->remove( 0 );
  171. }
  172. anzahl = 0;
  173. }
  174. // constant
  175. bool RessourceSchrift::hat( Text *name )
  176. {
  177. bool ret = hat( name->getText() );
  178. name->release();
  179. return ret;
  180. }
  181. bool RessourceSchrift::hat( const char *name )
  182. {
  183. for( int i = 0; i < anzahl; i++ )
  184. {
  185. if( this->name->z( i )->istGleich( name ) )
  186. return 1;
  187. }
  188. return 0;
  189. }
  190. Schrift *RessourceSchrift::get( Text *name )
  191. {
  192. Schrift *ret = get( name->getText() );
  193. name->release();
  194. return ret;
  195. }
  196. Schrift *RessourceSchrift::get( const char *name )
  197. {
  198. for( int i = 0; i < anzahl; i++ )
  199. {
  200. if( this->name->z( i )->istGleich( name ) )
  201. return this->schrift->get( i );
  202. }
  203. return 0;
  204. }
  205. Schrift *RessourceSchrift::z( Text *name )
  206. {
  207. Schrift *ret = z( name->getText() );
  208. name->release();
  209. return ret;
  210. }
  211. Schrift *RessourceSchrift::z( const char *name )
  212. {
  213. for( int i = 0; i < anzahl; i++ )
  214. {
  215. if( this->name->z( i )->istGleich( name ) )
  216. return this->schrift->z( i );
  217. }
  218. return 0;
  219. }