KESSEditor.cpp 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721
  1. #include "KESSEditor.h"
  2. #include "KEShopSeite.h"
  3. #include "../../../../Global/Initialisierung.h"
  4. #include <MausEreignis.h>
  5. #include <Text.h>
  6. #include "../../../../Global/Variablen.h"
  7. #include <DateiSystem.h>
  8. // Inhalt der KESSTextSeite Klasse aus KESSEditor.h
  9. // Konstruktor
  10. KESSTextSeite::KESSTextSeite( Schrift *zSchrift, Knopf *zNeueDatei, Knopf *zDateiRemove )
  11. {
  12. LTDSDatei *sd = new LTDSDatei();
  13. sd->setPfad( new Text( "data/schriften/ksgs.ltds" ) );
  14. sd->leseDaten();
  15. Schrift *ksgsS = sd->ladeSchrift();
  16. sd->release();
  17. text = initTextFeld( 220, 10, 540, 510, ksgsS ? ksgsS : zSchrift, TextFeld::Style::TextGebiet | TextFeld::Style::HScroll, "" );
  18. if( ksgsS )
  19. ksgsS->release();
  20. speichern = initKnopf( 770, 10, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Speichern" );
  21. dateiLöschen = zDateiRemove->getThis();
  22. neueDatei = zNeueDatei->getThis();
  23. aktion = 0;
  24. sichtbar = 0;
  25. alpha = 0;
  26. tickVal = 0;
  27. ref = 1;
  28. }
  29. // Destruktor
  30. KESSTextSeite::~KESSTextSeite()
  31. {
  32. text->release();
  33. speichern->release();
  34. dateiLöschen->release();
  35. neueDatei->release();
  36. }
  37. // nicht constant
  38. int KESSTextSeite::getAktion()
  39. {
  40. int ret = aktion;
  41. aktion = 0;
  42. return ret;
  43. }
  44. void KESSTextSeite::setDateiText( Text *txt )
  45. {
  46. text->setText( txt );
  47. }
  48. void KESSTextSeite::setSichtbar( bool s )
  49. {
  50. sichtbar = s;
  51. }
  52. bool KESSTextSeite::tick( double tv )
  53. {
  54. bool ret = text->tick( tv );
  55. ret |= speichern->tick( tv );
  56. ret |= dateiLöschen->tick( tv );
  57. ret |= neueDatei->tick( tv );
  58. tickVal += tv * 150;
  59. int val = 0;
  60. if( tickVal > 1 )
  61. val = (int)tickVal;
  62. else
  63. return ret;
  64. if( sichtbar && alpha != 255 )
  65. {
  66. if( alpha + val > 255 )
  67. alpha = 255;
  68. else
  69. alpha += val;
  70. ret = 1;
  71. }
  72. if( !sichtbar && alpha != 0 )
  73. {
  74. if( alpha - val < 0 )
  75. alpha = 0;
  76. else
  77. alpha -= val;
  78. ret = 1;
  79. }
  80. return ret;
  81. }
  82. void KESSTextSeite::doMausEreignis( MausEreignis &me )
  83. {
  84. if( !sichtbar )
  85. return;
  86. text->doMausEreignis( me );
  87. bool vera = me.verarbeitet;
  88. speichern->doMausEreignis( me );
  89. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  90. aktion = 1;
  91. vera = me.verarbeitet;
  92. dateiLöschen->doMausEreignis( me );
  93. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  94. aktion = 2;
  95. vera = me.verarbeitet;
  96. neueDatei->doMausEreignis( me );
  97. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  98. aktion = 3;
  99. }
  100. void KESSTextSeite::doTastaturEreignis( TastaturEreignis &te )
  101. {
  102. if( !sichtbar )
  103. return;
  104. text->doTastaturEreignis( te );
  105. }
  106. void KESSTextSeite::render( Bild &zRObj )
  107. {
  108. if( !alpha )
  109. return;
  110. zRObj.setAlpha( alpha );
  111. text->render( zRObj );
  112. speichern->render( zRObj );
  113. neueDatei->setPosition( 770, 70 );
  114. neueDatei->render( zRObj );
  115. dateiLöschen->setPosition( 770, 40 );
  116. dateiLöschen->render( zRObj );
  117. zRObj.releaseAlpha();
  118. }
  119. // constant
  120. Text *KESSTextSeite::zDateiText() const
  121. {
  122. return text->zText();
  123. }
  124. // Reference Counting
  125. KESSTextSeite *KESSTextSeite::getThis()
  126. {
  127. ref++;
  128. return this;
  129. }
  130. KESSTextSeite *KESSTextSeite::release()
  131. {
  132. ref--;
  133. if( !ref )
  134. delete this;
  135. return 0;
  136. }
  137. // Inhalt der KESSBildSeite Klasse aus KESSEditor.h
  138. // Konstruktor
  139. KESSBildSeite::KESSBildSeite( Schrift *zSchrift, Knopf *zNeueDatei, Knopf *zDateiRemove )
  140. {
  141. bilder = initAuswahlListe( 220, 10, 200, 510, zSchrift, AuswahlListe::Style::Normal, {} );
  142. bildObj = initBildZ( 430, 10, 440, 440, BildZ::Style::normal | BildZ::Style::Alpha, 0 );
  143. bildLöschen = initKnopf( 430, 460, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Bild Löschen" );
  144. importieren = initKnopf( 430, 490, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Importieren" );
  145. dateiLöschen = zDateiRemove->getThis();
  146. neueDatei = zNeueDatei->getThis();
  147. importDialog = 0;
  148. importPfad = 0;
  149. aktion = 0;
  150. sichtbar = 0;
  151. alpha = 0;
  152. alpha2 = 0;
  153. tickVal = 0;
  154. ref = 1;
  155. }
  156. // Destruktor
  157. KESSBildSeite::~KESSBildSeite()
  158. {
  159. bilder->release();
  160. bildObj->release();
  161. bildLöschen->release();
  162. importieren->release();
  163. dateiLöschen->release();
  164. neueDatei->release();
  165. if( importDialog )
  166. importDialog->release();
  167. if( importPfad )
  168. importPfad->release();
  169. }
  170. // nicht constant
  171. int KESSBildSeite::getAktion()
  172. {
  173. int ret = aktion;
  174. aktion = 0;
  175. return ret;
  176. }
  177. void KESSBildSeite::setBildListe( RCArray< Text > *list )
  178. {
  179. hauptScreen->lock();
  180. Text txt = bilder->zEintrag( bilder->getAuswahl() ) ? bilder->zEintrag( bilder->getAuswahl() )->zText()->getText() : "";
  181. while( bilder->getEintragAnzahl() )
  182. bilder->removeEintrag( 0 );
  183. int anz = list->getEintragAnzahl();
  184. int ausw = -1;
  185. for( int i = 0; i < anz; i++ )
  186. {
  187. if( list->z( i )->istGleich( txt ) )
  188. ausw = i;
  189. bilder->addEintrag( list->get( i ) );
  190. }
  191. if( ausw >= 0 )
  192. bilder->setAuswahl( ausw );
  193. else
  194. bilder->deSelect();
  195. list->release();
  196. hauptScreen->unlock();
  197. }
  198. void KESSBildSeite::setBild( Bild *b )
  199. {
  200. hauptScreen->lock();
  201. bildObj->setBild( b );
  202. hauptScreen->unlock();
  203. }
  204. void KESSBildSeite::setSichtbar( bool s )
  205. {
  206. sichtbar = s;
  207. }
  208. bool KESSBildSeite::tick( double tv )
  209. {
  210. if( importDialog )
  211. {
  212. if( !importDialog->isRunning() )
  213. {
  214. if( importPfad )
  215. importPfad->release();
  216. importPfad = importDialog->getPfad();
  217. importDialog = importDialog->release();
  218. if( sichtbar && importPfad )
  219. aktion = 3;
  220. }
  221. }
  222. bool ret = bilder->tick( tv );
  223. ret |= bildObj->tick( tv );
  224. ret |= bildLöschen->tick( tv );
  225. ret |= importieren->tick( tv );
  226. ret |= dateiLöschen->tick( tv );
  227. ret |= neueDatei->tick( tv );
  228. tickVal += tv * 150;
  229. int val = 0;
  230. if( tickVal > 1 )
  231. val = (int)tickVal;
  232. else
  233. return ret;
  234. if( sichtbar && alpha != 255 )
  235. {
  236. if( alpha + val > 255 )
  237. alpha = 255;
  238. else
  239. alpha += val;
  240. ret = 1;
  241. }
  242. if( !sichtbar && alpha != 0 )
  243. {
  244. if( alpha - val < 0 )
  245. alpha = 0;
  246. else
  247. alpha -= val;
  248. ret = 1;
  249. }
  250. if( sichtbar && bilder->getAuswahl() >= 0 && alpha2 != 255 )
  251. {
  252. if( alpha2 + val > 255 )
  253. alpha2 = 255;
  254. else
  255. alpha2 += val;
  256. ret = 1;
  257. }
  258. if( ( !sichtbar || bilder->getAuswahl() < 0 ) && alpha2 != 0 )
  259. {
  260. if( alpha2 - val < 0 )
  261. alpha2 = 0;
  262. else
  263. alpha2 -= val;
  264. ret = 1;
  265. }
  266. return ret;
  267. }
  268. void KESSBildSeite::doMausEreignis( MausEreignis &me )
  269. {
  270. if( !sichtbar )
  271. return;
  272. int ausw = bilder->getAuswahl();
  273. bilder->doMausEreignis( me );
  274. if( ausw != bilder->getAuswahl() && me.id == ME_RLinks )
  275. {
  276. if( bilder->getAuswahl() >= 0 )
  277. aktion = 1;
  278. else
  279. bilder->setAuswahl( ausw );
  280. }
  281. bool vera = me.verarbeitet;
  282. dateiLöschen->doMausEreignis( me );
  283. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  284. aktion = 4;
  285. vera = me.verarbeitet;
  286. neueDatei->doMausEreignis( me );
  287. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  288. aktion = 5;
  289. vera = me.verarbeitet;
  290. importieren->doMausEreignis( me );
  291. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  292. {
  293. if( !importDialog )
  294. {
  295. importDialog = new DateiDialogTh();
  296. importDialog->setOpen( 1 );
  297. importDialog->setDateiTypAuswahl( 4 );
  298. importDialog->addDateiTyp( "JPEG-Bild", "*.jpg;*.jpeg;*.jpe" );
  299. importDialog->addDateiTyp( "GIF-Bild", "*.gif" );
  300. importDialog->addDateiTyp( "PNG-Bild", "*.png" );
  301. importDialog->addDateiTyp( "Alle Dateien", "*.*" );
  302. importDialog->start();
  303. }
  304. }
  305. if( bilder->getAuswahl() < 0 )
  306. return;
  307. bildObj->doMausEreignis( me );
  308. vera = me.verarbeitet;
  309. bildLöschen->doMausEreignis( me );
  310. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  311. aktion = 2;
  312. }
  313. void KESSBildSeite::render( Bild &zRObj )
  314. {
  315. if( !alpha )
  316. return;
  317. zRObj.setAlpha( alpha );
  318. bilder->render( zRObj );
  319. neueDatei->setPosition( 540, 490 );
  320. neueDatei->render( zRObj );
  321. dateiLöschen->setPosition( 540, 460 );
  322. dateiLöschen->render( zRObj );
  323. importieren->render( zRObj );
  324. zRObj.setAlpha( alpha2 );
  325. bildObj->render( zRObj );
  326. bildLöschen->render( zRObj );
  327. zRObj.releaseAlpha();
  328. zRObj.releaseAlpha();
  329. }
  330. // constant
  331. Text *KESSBildSeite::zBildImportPfad() const
  332. {
  333. return importPfad;
  334. }
  335. Text *KESSBildSeite::zBildAuswahl() const
  336. {
  337. if( !bilder->zEintrag( bilder->getAuswahl() ) )
  338. return 0;
  339. return bilder->zEintrag( bilder->getAuswahl() )->zText();
  340. }
  341. // Reference Counting
  342. KESSBildSeite *KESSBildSeite::getThis()
  343. {
  344. ref++;
  345. return this;
  346. }
  347. KESSBildSeite *KESSBildSeite::release()
  348. {
  349. ref--;
  350. if( !ref )
  351. delete this;
  352. return 0;
  353. }
  354. bool kESSEditorNeuDateiOkME( void *p, void *obj, MausEreignis me )
  355. {
  356. if( p )
  357. return ( (KESSEditor*)p )->neuDateiOkME( me );
  358. else if( me.id == ME_RLinks )
  359. ( (Fenster*)obj )->removeStyle( Fenster::Style::Sichtbar );
  360. return 1;
  361. }
  362. // Inhalt der KESSEditor Klasse aus KESSEditor.h
  363. // Konstruktor
  364. KESSEditor::KESSEditor( Schrift *zSchrift )
  365. : Zeichnung()
  366. {
  367. neueDatei = initKnopf( 0, 0, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Neue Datei" );
  368. dateiLöschen = initKnopf( 0, 0, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Datei Löschen" );
  369. dateien = initAuswahlListe( 10, 10, 200, 510, zSchrift, AuswahlListe::Style::Normal, {} );
  370. textSeite = new KESSTextSeite( zSchrift, neueDatei, dateiLöschen );
  371. bildSeite = new KESSBildSeite( zSchrift, neueDatei, dateiLöschen );
  372. vorschau = initKnopf( 770, 470, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Vorschau" );
  373. veröffentlichen = initKnopf( 770, 500, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Fertig" );
  374. initToolTip( veröffentlichen, "Veröffentlicht die geänderte Version der Shop-Seite.", zSchrift->getThis(), hauptScreen );
  375. neuDateiF = initFenster( 365, 145, 150, 120, zSchrift, Fenster::Style::Erlaubt | Fenster::Style::BodyHintergrund | Fenster::Style::BodyHAlpha |
  376. Fenster::Style::Rahmen | Fenster::Style::Closable | Fenster::Style::ClosingKlickBuffer | Fenster::Style::ClosingHintergrund |
  377. Fenster::Style::ClosingHAlpha | Fenster::Style::Titel | Fenster::Style::TitelHintergrund | Fenster::Style::TitelHAlpha | Fenster::Style::TitelBuffered, "Neue Datei" );
  378. neuDateiF->setKBgFarbe( 0xC0000000 );
  379. neuDateiF->setSBgFarbe( 0xC0000000 );
  380. neuDateiF->setTBgFarbe( 0xC0000000 );
  381. neuDateiF->setClosingMe( kESSEditorNeuDateiOkME );
  382. neuDateiTyp = initAuswahlBox( 10, 10, 130, 20, zSchrift, ABSTYLE, { "Ordner", "Bild (.ltdb)", "Script (.ksgs)" } );
  383. neuDateiName = initTextFeld( 10, 40, 130, 20, zSchrift, TextFeld::Style::TextFeld, "Datei Name" );
  384. neuDateiOk = initKnopf( 25, 70, 100, 20, zSchrift, Knopf::Style::Normal | Knopf::Style::Sichtbar, "Erstellen" );
  385. neuDateiOk->setMausEreignisParameter( this );
  386. neuDateiOk->setMausEreignis( kESSEditorNeuDateiOkME );
  387. neuDateiF->addMember( neuDateiName );
  388. neuDateiF->addMember( neuDateiOk );
  389. neuDateiF->addMember( neuDateiTyp );
  390. aktion = 0;
  391. sichtbar = 0;
  392. alpha = 0;
  393. alpha2 = 0;
  394. tickVal = 0;
  395. ref = 1;
  396. }
  397. // Destruktor
  398. KESSEditor::~KESSEditor()
  399. {
  400. dateien->release();
  401. textSeite->release();
  402. bildSeite->release();
  403. vorschau->release();
  404. veröffentlichen->release();
  405. neuDateiF->release();
  406. neuDateiTyp->release();
  407. neuDateiName->release();
  408. neuDateiOk->release();
  409. neueDatei->release();
  410. dateiLöschen->release();
  411. }
  412. // nicht constant
  413. int KESSEditor::getAktion()
  414. {
  415. int ret = aktion;
  416. aktion = 0;
  417. return ret;
  418. }
  419. bool KESSEditor::neuDateiOkME( MausEreignis &me )
  420. {
  421. if( me.id == ME_RLinks )
  422. {
  423. neuDateiF->removeStyle( Fenster::Style::Sichtbar );
  424. aktion = 1;
  425. }
  426. return 1;
  427. }
  428. void KESSEditor::setDateiListe( RCArray< Text > *list )
  429. {
  430. hauptScreen->lock();
  431. dateien->deSelect();
  432. while( dateien->getEintragAnzahl() )
  433. dateien->removeEintrag( 0 );
  434. int anz = list->getEintragAnzahl();
  435. for( int i = 0; i < anz; i++ )
  436. dateien->addEintrag( list->get( i ) );
  437. bildSeite->setSichtbar( 0 );
  438. textSeite->setSichtbar( 0 );
  439. neuDateiF->removeStyle( Fenster::Style::Sichtbar );
  440. list->release();
  441. hauptScreen->unlock();
  442. }
  443. void KESSEditor::setBildListe( RCArray< Text > *list )
  444. {
  445. textSeite->setSichtbar( 0 );
  446. bildSeite->setBildListe( list );
  447. bildSeite->setSichtbar( 1 );
  448. }
  449. void KESSEditor::setDateiText( Text *txt )
  450. {
  451. bildSeite->setSichtbar( 0 );
  452. textSeite->setDateiText( txt );
  453. textSeite->setSichtbar( 1 );
  454. }
  455. void KESSEditor::setBild( Bild *b )
  456. {
  457. bildSeite->setBild( b );
  458. }
  459. void KESSEditor::setSichtbar( bool s )
  460. {
  461. sichtbar = s;
  462. }
  463. bool KESSEditor::tick( double tv )
  464. {
  465. int ak = textSeite->getAktion();
  466. switch( ak )
  467. {
  468. case 1: // Text Speichern
  469. aktion = 5;
  470. break;
  471. case 2: // Datei Löschen
  472. aktion = 4;
  473. break;
  474. case 3: // Neue Datei
  475. neuDateiF->addStyle( Fenster::Style::Sichtbar );
  476. break;
  477. }
  478. ak = bildSeite->getAktion();
  479. switch( ak )
  480. {
  481. case 1: // Bild Auswählen
  482. aktion = 3;
  483. break;
  484. case 2: // Bild Löschen
  485. aktion = 6;
  486. break;
  487. case 3: // Importieren
  488. aktion = 7;
  489. break;
  490. case 4: // Datei Löschen
  491. aktion = 4;
  492. break;
  493. case 5: // Neue Datei
  494. neuDateiF->addStyle( Fenster::Style::Sichtbar );
  495. break;
  496. }
  497. bool ret = dateien->tick( tv );
  498. ret |= textSeite->tick( tv );
  499. ret |= bildSeite->tick( tv );
  500. ret |= vorschau->tick( tv );
  501. ret |= veröffentlichen->tick( tv );
  502. ret |= neuDateiF->tick( tv );
  503. if( dateien->getAuswahl() < 0 )
  504. {
  505. ret |= neueDatei->tick( tv );
  506. if( dateien->getEintragAnzahl() > 0 && dateien->zEintrag( 0 )->zText()->istGleich( ".." ) )
  507. ret |= dateiLöschen->tick( tv );
  508. }
  509. tickVal += tv * 150;
  510. int val = 0;
  511. if( tickVal > 1 )
  512. {
  513. val = (int)tickVal;
  514. tickVal -= val;
  515. }
  516. else
  517. return ret;
  518. if( sichtbar && neuDateiF->hatStyle( Fenster::Style::Sichtbar ) && alpha2 > 100 )
  519. {
  520. if( alpha2 - val < 100 )
  521. alpha2 = 100;
  522. else
  523. alpha2 -= val;
  524. ret = 1;
  525. }
  526. if( sichtbar && neuDateiF->hatStyleNicht( Fenster::Style::Sichtbar ) && alpha2 < 255 )
  527. {
  528. if( alpha2 + val > 255 )
  529. alpha2 = 255;
  530. else
  531. alpha2 += val;
  532. ret = 1;
  533. }
  534. if( sichtbar && alpha != 255 )
  535. {
  536. if( alpha + val > 255 )
  537. alpha = 255;
  538. else
  539. alpha += val;
  540. ret = 1;
  541. }
  542. if( !sichtbar && alpha != 0 )
  543. {
  544. if( alpha - val < 0 )
  545. alpha = 0;
  546. else
  547. alpha -= val;
  548. ret = 1;
  549. }
  550. return ret;
  551. }
  552. void KESSEditor::doMausEreignis( MausEreignis &me )
  553. {
  554. if( !sichtbar )
  555. return;
  556. if( neuDateiF->hatStyle( Fenster::Style::Sichtbar ) )
  557. {
  558. neuDateiF->doMausEreignis( me );
  559. return;
  560. }
  561. int ausw = dateien->getAuswahl();
  562. dateien->doMausEreignis( me );
  563. if( ausw != dateien->getAuswahl() && me.id == ME_RLinks )
  564. {
  565. if( dateien->getAuswahl() >= 0 )
  566. aktion = 2;
  567. else
  568. dateien->setAuswahl( ausw );
  569. }
  570. textSeite->doMausEreignis( me );
  571. bildSeite->doMausEreignis( me );
  572. if( dateien->getAuswahl() < 0 )
  573. {
  574. bool vera = me.verarbeitet;
  575. neueDatei->doMausEreignis( me );
  576. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  577. neuDateiF->addStyle( Fenster::Style::Sichtbar );
  578. if( dateien->getEintragAnzahl() > 0 && dateien->zEintrag( 0 )->zText()->istGleich( ".." ) )
  579. {
  580. vera = me.verarbeitet;
  581. dateiLöschen->doMausEreignis( me );
  582. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  583. aktion = 4;
  584. }
  585. }
  586. bool vera = me.verarbeitet;
  587. vorschau->doMausEreignis( me );
  588. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  589. aktion = 8;
  590. vera = me.verarbeitet;
  591. veröffentlichen->doMausEreignis( me );
  592. if( !vera && me.verarbeitet && me.id == ME_RLinks )
  593. aktion = 9;
  594. }
  595. void KESSEditor::doTastaturEreignis( TastaturEreignis &te )
  596. {
  597. if( neuDateiF->hatStyle( Fenster::Style::Sichtbar ) )
  598. {
  599. neuDateiF->doTastaturEreignis( te );
  600. return;
  601. }
  602. textSeite->doTastaturEreignis( te );
  603. }
  604. void KESSEditor::render( Bild &zRObj )
  605. {
  606. zRObj.setAlpha( alpha );
  607. zRObj.setAlpha( alpha2 );
  608. dateien->render( zRObj );
  609. textSeite->render( zRObj );
  610. bildSeite->render( zRObj );
  611. vorschau->render( zRObj );
  612. veröffentlichen->render( zRObj );
  613. if( dateien->getAuswahl() < 0 )
  614. {
  615. neueDatei->setPosition( 770, 440 );
  616. neueDatei->render( zRObj );
  617. if( dateien->getEintragAnzahl() > 0 && dateien->zEintrag( 0 )->zText()->istGleich( ".." ) )
  618. {
  619. dateiLöschen->setPosition( 770, 410 );
  620. dateiLöschen->render( zRObj );
  621. }
  622. }
  623. zRObj.releaseAlpha();
  624. neuDateiF->render( zRObj );
  625. zRObj.releaseAlpha();
  626. }
  627. // constant
  628. Text *KESSEditor::zDateiText() const
  629. {
  630. return textSeite->zDateiText();
  631. }
  632. Text *KESSEditor::zBildImportPfad() const
  633. {
  634. return bildSeite->zBildImportPfad();
  635. }
  636. Text *KESSEditor::zDateiAuswahl() const
  637. {
  638. if( !dateien->zEintrag( dateien->getAuswahl() ) )
  639. return 0;
  640. return dateien->zEintrag( dateien->getAuswahl() )->zText();
  641. }
  642. Text *KESSEditor::zBildAuswahl() const
  643. {
  644. return bildSeite->zBildAuswahl();
  645. }
  646. int KESSEditor::getNeuDateiTyp() const
  647. {
  648. return neuDateiTyp->getAuswahl();
  649. }
  650. Text *KESSEditor::zNeuDateiName() const
  651. {
  652. return neuDateiName->zText();
  653. }
  654. bool KESSEditor::istSichtbar() const
  655. {
  656. return sichtbar;
  657. }
  658. // Reference Counting
  659. KESSEditor *KESSEditor::getThis()
  660. {
  661. ref++;
  662. return this;
  663. }
  664. KESSEditor *KESSEditor::release()
  665. {
  666. ref--;
  667. if( !ref )
  668. delete this;
  669. return 0;
  670. }