123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #include "MapWindow.h"
- #include <TextFeld.h>
- #include "Globals.h"
- MapWindow::MapWindow()
- : Fenster(),
- map(0)
- {
- setStyle(
- Fenster::Style::Erlaubt | Fenster::Style::Rahmen
- | Fenster::Style::BodyHAlpha | Fenster::Style::Titel
- | Fenster::Style::TitelHAlpha | Fenster::Style::Closable
- | Fenster::Style::ClosingHAlpha | Fenster::Style::ClosingKlickBuffer
- | Fenster::Style::TitelHintergrund | Fenster::Style::BodyHintergrund
- | Fenster::Style::ClosingHintergrund | Fenster::Style::MEIgnoreInside
- | Fenster::Style::HeightChangeable | Fenster::Style::BreiteChangeable
- | Fenster::Style::BodyMinBr | Fenster::Style::BodyMinHi
- | Fenster::Style::Beweglich);
- removeStyle(Fenster::Style::Sichtbar);
- setTitel("Map");
- setClosingMe([this](void* p, void* o, Framework::MausEreignis me) {
- if (me.id == Framework::ME_RLinks)
- {
- setVisibility(0);
- }
- return 1;
- });
- setSize(500, 500);
- setPosition(uiFactory.initParam.bildschirm->getBackBufferSize().x / 2
- - getBreite() / 2,
- uiFactory.initParam.bildschirm->getBackBufferSize().y / 2
- - getHeight() / 2);
- setMausEreignis(Framework::_ret1ME);
- setTastaturEreignis(Framework::_ret1TE);
- setRBreite(1);
- setRFarbe(0xFF52525E);
- setKBgFarbe(0xA0000000);
- setTBgFarbe(0xA0000000);
- setSBgFarbe(0xA0000000);
- setTSchriftZ(
- dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
- zTTextFeld()->setSize(0, 20);
- zTTextFeld()->addStyle(TextFeld::Style::Center);
- setKMin(200, 200);
- }
- void MapWindow::setVisibility(bool visible)
- {
- if ((visible && !map) || (!visible && map))
- {
- uiFactory.initParam.bildschirm->postAction([this, visible]() {
- if (visible && !map)
- {
- lockZeichnung();
- map = new DimensionMap();
- map->setSize(getInnenBreite(), getInnenHeight());
- addMember(map);
- unlockZeichnung();
- addStyle(Fenster::Style::Sichtbar);
- }
- if (!visible && map)
- {
- removeStyle(Fenster::Style::Sichtbar);
- lockZeichnung();
- removeMember(map);
- map = 0;
- unlockZeichnung();
- }
- });
- }
- }
- void MapWindow::addChunk(ChunkMap* chunk)
- {
- lockZeichnung();
- if (map)
- {
- map->addChunk(chunk);
- }
- else
- {
- chunk->release();
- }
- unlockZeichnung();
- }
- bool MapWindow::tick(double time)
- {
- if (map) map->setSize(getInnenBreite(), getInnenHeight());
- return Fenster::tick(time);
- }
|