123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #include "UIDialog.h"
- #include "Knopf.h"
- #include "Schrift.h"
- #include "TextFeld.h"
- #include "UIInitialization.h"
- using namespace Framework;
- UIDialog::UIDialog(Schrift* schrift)
- : Fenster()
- {
- addStyle(Fenster::Style::normal | Fenster::Style::BodyHintergrund
- | Fenster::Style::TitelHintergrund
- | Fenster::Style::ClosingHintergrund);
- setKBgFarbe(0xFF000000);
- setTBgFarbe(0xFF000000);
- setSBgFarbe(0xFF000000);
- setMausEreignis(_ret1ME);
- setTastaturEreignis(_ret1TE);
- setRBreite(1);
- setRFarbe(0xFFFFFFFF);
- setTitel("");
- setTSchriftZ(schrift);
- setTSFarbe(0xFFFFFFFF);
- zTTextFeld()->setSize(0, 20);
- zTTextFeld()->addStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Center
- | TextFeld::Style::Rahmen);
- setTRFarbe(0xFF00FF00);
- setTRBreite(1);
- setTAfFarbe(0x1000FF00);
- setTAfStrength(-15);
- setSKAfFarbe(0xFF00FF00);
- setSKAfStrength(30);
- setClosingMe([this](void* p, void* o, MausEreignis me) {
- if (me.id == ME_RLinks) removeStyle(Fenster::Style::Sichtbar);
- return 1;
- });
- }
- UIDialog::~UIDialog() {}
- void UIDialog::adjustSize()
- {
- Punkt max = Punkt(0, 0);
- for (auto m = getMembers(); m; m++)
- {
- if (m->hatStyle(Zeichnung::Style::Sichtbar))
- {
- max.x = MAX(max.x, m->getX() + m->getBreite() + 5);
- max.y = MAX(max.y, m->getY() + m->getHeight() + 5);
- }
- }
- setSize(
- max
- + Punkt(hatStyle(Fenster::Style::Rahmen) ? getRBreite() * 2 : 0,
- (hatStyle(Fenster::Style::Rahmen) ? getRBreite() * 2 : 0)
- + (hatStyle(Fenster::Style::Titel) ? zTTextFeld()->getHeight()
- : 0)));
- }
- // Fügt dem Fenster eine Zeichnung hinzu
- // obj: Die Zeichnung
- void UIDialog::addMember(Zeichnung* obj)
- {
- Fenster::addMember(obj);
- adjustSize();
- }
- // Entfernt eine Zeichnung aus dem Fenster
- // zObj: Die Zeichnung (ohne erhöhten reference Counter)
- void UIDialog::removeMember(Zeichnung* zObj)
- {
- Fenster::removeMember(zObj);
- adjustSize();
- }
- // Entfernt alle Zeichnungen aus dem Fenster
- void UIDialog::removeAll()
- {
- Fenster::removeAll();
- adjustSize();
- }
- UIMessageDialog::UIMessageDialog(
- const char* titel, const char* message, Schrift* schrift)
- : UIDialog(schrift)
- {
- setTitel(titel);
- UIInit init = defaultUI(schrift, 0);
- TextFeld* msg = init.createTextFeld(init.initParam);
- msg->setStyle(TextFeld::Style::Text);
- msg->setText(message);
- msg->setPosition(5, 5);
- TextRenderer tr(dynamic_cast<Schrift*>(schrift->getThis()));
- tr.textFormatieren(msg->zText(), 590);
- int br = tr.getTextBreite(message);
- int hö = tr.getTextHeight(message);
- msg->setSize(br, hö );
- Knopf* ok = init.createKnopf(init.initParam);
- ok->setText("Ok");
- ok->setMausEreignis([this](void* p, void* o, MausEreignis me) {
- if (me.id == ME_RLinks) removeStyle(Fenster::Style::Sichtbar);
- return 1;
- });
- ok->setPosition(br - 100, hö + 5);
- ok->setSize(100, 20);
- addMember(ok);
- addMember(msg);
- setSize(br + 10, hö + 55);
- }
- UIMessageDialog::~UIMessageDialog() {}
|