KESSEditor.cpp 20 KB

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