UIDialog.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include "UIDialog.h"
  2. #include "UIInitialization.h"
  3. #include "TextFeld.h"
  4. #include "Schrift.h"
  5. #include "Knopf.h"
  6. using namespace Framework;
  7. UIDialog::UIDialog( Schrift *schrift )
  8. : Fenster()
  9. {
  10. setStyle( Fenster::Style::normal | Fenster::Style::BodyHintergrund | Fenster::Style::TitelHintergrund | Fenster::Style::ClosingHintergrund );
  11. setKBgFarbe( 0xFF000000 );
  12. setTBgFarbe( 0xFF000000 );
  13. setSBgFarbe( 0xFF000000 );
  14. setMausEreignis( _ret1ME );
  15. setTastaturEreignis( _ret1TE );
  16. setRBreite( 1 );
  17. setRFarbe( 0xFFFFFFFF );
  18. setTitel( "" );
  19. setTSchriftZ( schrift );
  20. setTSFarbe( 0xFFFFFFFF );
  21. zTTextFeld()->setSize( 0, 20 );
  22. zTTextFeld()->addStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Center | TextFeld::Style::Rahmen );
  23. setTRFarbe( 0xFF00FF00 );
  24. setTRBreite( 1 );
  25. setTAfFarbe( 0x1000FF00 );
  26. setTAfStrength( -15 );
  27. setSKAfFarbe( 0xFF00FF00 );
  28. setSKAfStrength( 30 );
  29. setClosingMe( [ this ]( void *p, void *o, MausEreignis me )
  30. {
  31. if( me.id == ME_RLinks )
  32. removeStyle( Fenster::Style::Sichtbar );
  33. return 1;
  34. } );
  35. }
  36. UIDialog::~UIDialog()
  37. {}
  38. UIMessageDialog::UIMessageDialog( const char *titel, const char *message, Schrift *schrift )
  39. : UIDialog( schrift )
  40. {
  41. setTitel( titel );
  42. UIInit init = defaultUI( schrift, 0 );
  43. TextFeld *msg = init.createTextFeld( init.initParam );
  44. msg->setStyle( TextFeld::Style::Text );
  45. msg->setText( message );
  46. msg->setPosition( 5, 5 );
  47. TextRenderer tr( schrift->getThis() );
  48. tr.textFormatieren( msg->zText(), 590 );
  49. int br = tr.getTextBreite( message );
  50. int hö = tr.getTextHeight( message );
  51. msg->setSize( br, hö );
  52. Knopf *ok = init.createKnopf( init.initParam );
  53. ok->setText( "Ok" );
  54. ok->setMausEreignis( [ this ]( void *p, void *o, MausEreignis me )
  55. {
  56. if( me.id == ME_RLinks )
  57. removeStyle( Fenster::Style::Sichtbar );
  58. return 1;
  59. } );
  60. ok->setPosition( br - 100, hö + 5 );
  61. ok->setSize( 100, 20 );
  62. addMember( ok );
  63. addMember( msg );
  64. setSize( br + 10, hö + 55 );
  65. }
  66. UIMessageDialog::~UIMessageDialog()
  67. {}