123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- #include "UIDialog.h"
- #include "UIInitialization.h"
- #include "TextFeld.h"
- #include "Schrift.h"
- #include "Knopf.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()
- {}
|